| 1 | DVBCHLOR ;ALB/JLU-Routine to build an order message ;1/28/93 | 
|---|
| 2 | ;;2.7;AMIE;;Apr 10, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | BEG(DVBCPDFN,DVBCRDFN,DVBCEXAM,DVBCOC,HLDAP) ; | 
|---|
| 5 | ;when entering this routine the following variables must be set. | 
|---|
| 6 | ;DVBCPDFN - Patient DFN | 
|---|
| 7 | ;DVBCRDFN - Request DFN | 
|---|
| 8 | ;DVBCEXAM - Exam DFN | 
|---|
| 9 | ;DVBCOC   - Order Control "NEW" for a new order or "CANCEL" to cancel | 
|---|
| 10 | ;           an order. | 
|---|
| 11 | ;HLDAP    - name or IFN of entry in file #771 (the DHCP application) | 
|---|
| 12 | ; | 
|---|
| 13 | N DVBCERR | 
|---|
| 14 | S DVBCERR=1 | 
|---|
| 15 | D INITIAL | 
|---|
| 16 | I '$D(HLERR) D | 
|---|
| 17 | .D PID^DVBCHLUT | 
|---|
| 18 | .D ORC^DVBCHLUT | 
|---|
| 19 | .D OBR^DVBCHLUT | 
|---|
| 20 | .Q | 
|---|
| 21 | D FILE | 
|---|
| 22 | D EXIT | 
|---|
| 23 | Q DVBCERR | 
|---|
| 24 | ; | 
|---|
| 25 | INITIAL ;sets up necessary variables | 
|---|
| 26 | ;will need HLDAP equal to name or internal entry number in file #771 | 
|---|
| 27 | D INIT^HLTRANS Q:$D(HLERR) | 
|---|
| 28 | S DFN=DVBCPDFN | 
|---|
| 29 | D DEM^VADPT | 
|---|
| 30 | I VAERR!VADM(1)']"" S HLERR="Invalid Patient name or DFN" | 
|---|
| 31 | S DVBCSEG=1,DVBCPLCR=1 | 
|---|
| 32 | S DVBCRQDT=$P(^DVB(396.3,DVBCRDFN,0),U,2) | 
|---|
| 33 | S DVBCEXTY=$P(^DVB(396.4,DVBCEXAM,0),U,3) | 
|---|
| 34 | S DVBCEXTY=$P(^DVB(396.6,DVBCEXTY,0),U,1) | 
|---|
| 35 | S DVBCOC=$S(DVBCOC="NEW":"NW",DVBCOC="CANCEL":"CA",1:"") | 
|---|
| 36 | Q | 
|---|
| 37 | ; | 
|---|
| 38 | FILE ;builds and send the HL7 message | 
|---|
| 39 | I '$D(HLERR) S HLMTN="ORM" D EN^HLTRANS | 
|---|
| 40 | I $D(HLERR) S DVBCERR=HLERR | 
|---|
| 41 | Q | 
|---|
| 42 | ; | 
|---|
| 43 | EXIT ; | 
|---|
| 44 | D KILL^HLTRANS | 
|---|
| 45 | K HLDA,HLDT,HLDT1,DFN,DVBC1,DVBCOC,DVBCEXTY,DVBCPDFN,DVBCPLCR,DVBCRQDT,DVBCSEG,VA,VADM,VAERR | 
|---|
| 46 | Q | 
|---|