PK.MEDOKEY
@OPEN.MED,
@HDR,
@PATS,
@TRLR,
END;

OPEN.MED
@phadir,
O(*,@phadata),
O(\,@phadict),
@pkdir

HDR
"<?xml version="_D(34)_1.0_D(34)_" ?>"^!,
"<ReplyMessage>"^!,
"<TransactionId>"_1234_"</TransactionId>"^!,
"<Status>Success</Status>"^!,
"<Payload>"^!

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

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

PHA
""^Q,
DO{@NEXT.RX @SEND}

NEXT.RX
>(*TRP[aa,Q],tr)^Q

SEND
IF{"if discontinued, check rx end date against date from pk",
   ^*TR[tr]^PHA.MAIN,
   [PHA.MAIN]|8^stat,
   stat="AC" @SEND2;
   IF{stat="DC" [PHA.MAIN]|5;
      stat="CAN" [PHA.MAIN,2]|3}^other.dt,
   [PHA.MAIN]|16^STOP.DT,
   IF{STOP.DT_.=. other.dt;
      other.dt&(other.dt<STOP.DT) other.dt;
      STOP.DT}^STOP.DT,
   (STOP.DT_.'=.)&(STOP.DT<DT);
   @SEND2}

SEND2
[PHA.MAIN]|14_[PHA.MAIN]|15^START.DT,
[PHA.MAIN,2]|0_[PHA.MAIN,2]|1_START.DT_STOP.DT^KEY,
*AA[aa]|3^MRN,
\TDO[[PHA.MAIN]|7]|2^TYPE,
IF{TYPE="COMP" DO{+[PHA.MAIN,"IN",x]^x tr_"."_x^mnemonic,@SEND.ORDER};
   TYPE="SPLIT" DO{+[PHA.MAIN,"MD",x]^x tr_"."_x^mnemonic,@SEND.ORDER};
   TYPE="ALT" DO{+[PHA.MAIN,"BT",x]^x tr_"."_x^mnemonic,@SEND.ORDER};
   tr^mnemonic,@SEND.ORDER}

SEND.ORDER
"<Order>"^!,
"<OrderMnemonic>"_mnemonic_"</OrderMnemonic>"^!,
"<Key>"_KEY_"</Key>"^!,
"<PatientNumber>"_MRN_"</PatientNumber>"^!,
"</Order>"^!
