PK.VITLKEY,
@OPEN.NUR,
@HDR,
@VITALSET,
@PATS,
@TRLR,
END;

HDR
"<?xml version="_D(34)_1.0_D(34)_" ?>"^!,
"<ReplyMessage>"^!,
"<TransactionId>0</TransactionId>"^!,
"<Status>Success</Status>"^!,
"<StatusDescription>Step returned a Success status.</StatusDescription>"^!,
"<Payload>"^!,
"<CodeSets>"^!

TRLR
"</CodeSets>"^!,
"</Payload>"^!,
"</ReplyMessage>"^!

OPEN.NUR
@misdir,
O(&,@misdict),
@admdir,
O(:,@admdata),
@nurdir,
O(*,@nurdata),
@pkdir

PATS
/ARGV[1]^DT,
2^nr,
DO{nr</ARGC 1,
   /ARGV[nr]^ACT,
   :AAAI[ACT]^aa,
   @VITALS,
   nr+1^nr}

VITALSET
""^ggv,
DO{+/CONF[.vitals.queries][ggv]^ggv "got one",
   @VITAL.DEF}

VITAL.DEF
ggv^/V.QRY[ggv]

VITALS
:AA[aa]|3^MRN,
^*NPCW[aa,"I"]^NUR.DATA,
""^URN^SEQ^TD^TM^EDITNUM,
DO{<([NUR.DATA,URN,"O",SEQ,"TD",TD,TM,XXX],YYY)^XXX "got one",
      XXX#"0S"^CTR,
      IF{EDITNUM_.=. CTR^EDITNUM},
      L(EDITNUM,.)'=L(EDITNUM)^HASDOT,
      IF{(HASDOT)&(CTR'=EDITNUM) 1,
            "had edit, doesnt match most recent edit, dont show";
         ('HASDOT)&([NUR.DATA,URN,"O",SEQ,"TD",TD,TM,CTR]_.=.) 1,
            "no edits, but no root record, means deleted, dont show";
         XXX#"1S"="Q" "regular result",
            XXX#"2S"^ggv,
            IF{/V.QRY[ggv]_.=.;
               YYY|0_.=. "no value, dont display";
               "Q"^keyprefix,
               @SEND.DATA};
         XXX#"1S"="R" "repeat result",
            XXX#"4S"^ggv,
            IF{/V.QRY[ggv]_.=.;
               YYY|0_.=. "no value, dont display";
               "R"_(XXX#"2S")^keyprefix,
               @SEND.DATA}};
   ""^EDITNUM,-[NUR.DATA,URN,"O",SEQ,"TD",TD,TM]^TM;
   -[NUR.DATA,URN,"O",SEQ,"TD",TD]^TD'<DT;
   ""^TD,-[NUR.DATA,URN,"O",SEQ]^SEQ;
   -[NUR.DATA,URN]^URN}

SEND.DATA
@GET.VALUE,
IF{ggv=/CONF[.vitals.bp.query] "blood pressure gets special handling",
   "split bp query into systolic and diastolic",
      ggv^tmpggv,
      val^tmpval,
      tmpggv_":S"^ggv,tmpval$L(tmpval,"/")^val,@SEND.VITAL,
      tmpggv_":D"^ggv,tmpval%L(tmpval,"/")^val,@SEND.VITAL,
      tmpggv^ggv;
   "otherwise, just emit this query",
      @SEND.VITAL}

SEND.VITAL
"<Vital>"^!,
"<VitalMnemonic>"_aa_URN_SEQ_TD_(TM)_(XXX#"0S")_(keyprefix)_(ggv)_"</VitalMnemonic>"^!,
"<Key>"_(TD)_(TM)_"</Key>"^!,
"<PersonMnemonic>"_(MRN)_"</PersonMnemonic>"^!,
"<EncounterMnemonic>"_(ACT)_"</EncounterMnemonic>"^!,
"<Value><![CDATA["_(val)_"]]></Value>"^!,
"<DateTime>"_(TD)_(TM)_"</DateTime>"^!,
"<EventCodeMnemonic>"_(ggv)_"</EventCodeMnemonic>"^!,
"</Vital>"^!

GET.VALUE
YYY|0^val,
&GGV[ggv]|2^fldtype,
IF{(fldtype="G")!(fldtype="O") "special handling",
   &GGV[ggv]|4^ggl,
   &GGL[ggl]E[val]|0^val}
