[613] | 1 | GMRAOR5 ;HIRMFO/WAA,FPT-OERR HL7 UTILITY ;3/5/04 14:02
|
---|
| 2 | ;;4.0;Adverse Reaction Tracking;**4,12,13,19**;Mar 29, 1996
|
---|
| 3 | ;MSG = HL7 Message array
|
---|
| 4 | ;GMRANODE = IEN of MSG array
|
---|
| 5 | ;GMRAND = Date from MSG(GMRANODE)
|
---|
| 6 | ;GMRAMTP = Message type
|
---|
| 7 | ;Allergy Loader
|
---|
| 8 | ;building GMRAL Array to be used to stuff only new data
|
---|
| 9 | ;GMRAID=sequence number of allergy
|
---|
| 10 | ;~=continuation
|
---|
| 11 | ;GMRAIDO = Sequence # OBSERVED
|
---|
| 12 | ;GMRAIDS = Sequence # SIGN
|
---|
| 13 | ;GMRAIDN = Sequence # NOTES
|
---|
| 14 | ; GMRADFN=DFN of patient in ^DPT(DFN) Patient (2) file
|
---|
| 15 | ; GMRAL(GMRAID)=type^file ien^VA Free text drug^file^OERR entry date
|
---|
| 16 | ; ^NKA Status^Originator Pt to 200^Observed/Historical
|
---|
| 17 | ; GMRAL(GMRAID,"O",GMRAIDO)=Observed date^Severity^Observer's DUZ
|
---|
| 18 | ; GMRAL(GMRAID,"S",GMRAIDS)=IEN of file^Free Text of entry^File of SS
|
---|
| 19 | ; ^Date/Time of the SS
|
---|
| 20 | ; GMRAL(GMRAID,"N",GMRAIDN)=Source of comments(Originator always)
|
---|
| 21 | ;----------------------------------------------------------------------
|
---|
| 22 | ; Example of data
|
---|
| 23 | ; GMRADFN=270
|
---|
| 24 | ; GMRAL(1)="D^5^SHELL FISH^99ALL^2940415.06^n^1270^o"
|
---|
| 25 | ; GMRAL(1,"O",1)="2940401.1^3^1234"
|
---|
| 26 | ; GMRAL(1,"S",1)="32^SEVERE RASH^99ALS^2951211.1120"
|
---|
| 27 | ; GMRAL(1,"N",1)="n"
|
---|
| 28 | ; GMRAL(1,"N",1,1)=FREE TEXT
|
---|
| 29 | ;******************************************************************
|
---|
| 30 | EN1 ;Main entry point to file data
|
---|
| 31 | N %,GMRADUP,GMRAFDN,GMRANKA,GNRAY,X,Y
|
---|
| 32 | Q:'$G(GMRADFN)
|
---|
| 33 | S GMRAL=0
|
---|
| 34 | S GMRAPA=0,GMRADUP=0
|
---|
| 35 | ; See if the patient has been ask about allergies
|
---|
| 36 | S (GMRAYN,GMRANKA)=0,GMRAYN=$P($G(^GMR(120.86,GMRADFN,0)),U,2)
|
---|
| 37 | ;Loop through for each allergy
|
---|
| 38 | F S GMRAL=$O(GMRAL(GMRAL)) Q:GMRAL<1 D
|
---|
| 39 | .;If GMRANKA="" add the entry into the file
|
---|
| 40 | .I '$D(^GMR(120.86,GMRADFN,0)) K DD,DO,DIC,DINUM,DLAYGO S DIC="^GMR(120.86,",DLAYGO=120.86,DIC(0)="L",(DINUM,X)=GMRADFN D FILE^DICN K DD,DO,DIC,DINUM,DLAYGO D
|
---|
| 41 | ..Q:Y=-1
|
---|
| 42 | ..S GMRAYN=$S($P(GMRAL(GMRAL),U,6)="y":1,1:0)
|
---|
| 43 | ..S $P(^GMR(120.86,GMRADFN,0),U,2,4)=GMRAYN_U_$P(GMRAL(GMRAL),U,7)_U_$P(GMRAL(GMRAL),U,5)
|
---|
| 44 | ..Q
|
---|
| 45 | .N GMRALL,GMRAFN,%
|
---|
| 46 | .S GMRALL=$P(GMRAL(GMRAL),U,3)
|
---|
| 47 | .I $P(GMRAL(GMRAL),U,6)="n" D Q:GMRALL'=""
|
---|
| 48 | ..; Change to no for allergies
|
---|
| 49 | ..Q:GMRAYN="1"!$D(^GMR(120.86,GMRADFN,0))
|
---|
| 50 | ..S $P(^GMR(120.86,GMRADFN,0),U,2,4)="0"_U_$P(GMRAL(GMRAL),U,7)_U_$P(GMRAL(GMRAL),U,5)
|
---|
| 51 | ..S:'$D(^GMR(120.86,"B",GMRADFN,GMRADFN)) ^(GMRADFN)=""
|
---|
| 52 | ..Q
|
---|
| 53 | .I GMRAYN="0",$P(GMRAL(GMRAL),U,6)="n" Q
|
---|
| 54 | .; see If the entry needs to be added
|
---|
| 55 | .; If the entry is an allergy set 120.86 to "y"
|
---|
| 56 | .I GMRALL'="",$D(^GMR(120.86,GMRADFN,0)) S GMRAYN=1 D
|
---|
| 57 | ..; Change to yes for allergies
|
---|
| 58 | ..S $P(^GMR(120.86,GMRADFN,0),U,2,4)=GMRAYN_U_$P(GMRAL(GMRAL),U,7)_U_$P(GMRAL(GMRAL),U,5)
|
---|
| 59 | ..S:'$D(^GMR(120.86,"B",GMRADFN,GMRADFN)) ^(GMRADFN)=""
|
---|
| 60 | ..Q
|
---|
| 61 | .; Quit if the reaction is a Dup
|
---|
| 62 | .Q:$$DUPCHK^GMRAOR0(GMRADFN,GMRALL)>0
|
---|
| 63 | .S GMRAPA=0
|
---|
| 64 | .K DD,DO,DIC,DINUM,DLAYGO S DIC="^GMR(120.8,",DLAYGO=120.8,DIC(0)="L",X=GMRADFN D FILE^DICN
|
---|
| 65 | .K DD,DO,DIC,DINUM,DLAYGO
|
---|
| 66 | .Q:Y=-1 S GMRAPA=+Y
|
---|
| 67 | .Q:$G(^GMR(120.8,GMRAPA,0))=""
|
---|
| 68 | .F Q:$$LOCK^GMRAUTL(120.8,GMRAPA)
|
---|
| 69 | .N GMRALN,GMRAVR
|
---|
| 70 | .S GMRALN=$G(^GMR(120.8,GMRAPA,0))
|
---|
| 71 | .S $P(GMRALN,U,4)=$P(GMRAL(GMRAL),U,5) ; Orig. DT
|
---|
| 72 | .S $P(GMRALN,U,5)=$P(GMRAL(GMRAL),U,7) ; Originator
|
---|
| 73 | .S %=$P(GMRAL(GMRAL),U,4),%=$S(%="99ALL"!(%="99OTH"):"GMRD(120.82,",%="99NDF":$P($$NDFREF^GMRAOR,U,2),%="99PSC":"PS(50.605,",1:"") Q:%="" ;Bad entry
|
---|
| 74 | .S:$P(GMRAL(GMRAL),U,2)="NOS" $P(GMRAL(GMRAL),U,2)=$S($O(^GMRD(120.82,"B","OTHER ALLERGY/ADVERSE REACTION",0))>0:$O(^GMRD(120.82,"B","OTHER ALLERGY/ADVERSE REACTION",0)),1:1)
|
---|
| 75 | .S GMRAAR=$P(GMRAL(GMRAL),U,2)_";"_%,$P(GMRALN,U,3)=GMRAAR ;File Ptr
|
---|
| 76 | .I $P(GMRAL(GMRAL),U,3)'="" S $P(GMRALN,U,2)=$P(GMRAL(GMRAL),U,3) ;Free text
|
---|
| 77 | .E D ; This code will resolve the free text pointer for the reaction
|
---|
| 78 | ..N GMRALOC,GMRADATA
|
---|
| 79 | ..S GMRALOC="^"_$P($P(GMRALN,U,3),";",2)_+$P(GMRALN,U,3)_",0)"
|
---|
| 80 | ..S GMRADATA=@GMRALOC
|
---|
| 81 | ..S $P(GMRALN,U,2)=$P(GMRADATA,U)
|
---|
| 82 | ..Q
|
---|
| 83 | .S $P(GMRALN,U,20)=$P(GMRAL(GMRAL),U) ;Type of reaction
|
---|
| 84 | .S $P(GMRALN,U,6)=$P(GMRAL(GMRAL),U,8) ;Obs/Hist
|
---|
| 85 | .S $P(GMRALN,U,14)="U" ;Mechanism
|
---|
| 86 | .S $P(GMRALN,U,12)=1 ;Sign-off the reaction
|
---|
| 87 | .; auto-verify?
|
---|
| 88 | .S GMRAVR="",GMRAVR(0)=GMRALN
|
---|
| 89 | .S $P(GMRALN,U,16)=$$VFY^GMRASIGN(.GMRAVR)
|
---|
| 90 | .I $P(GMRALN,U,16) S $P(GMRALN,U,17)=$$NOW^XLFDT
|
---|
| 91 | .; save
|
---|
| 92 | .S ^GMR(120.8,GMRAPA,0)=GMRALN
|
---|
| 93 | .I $D(GMRAL(GMRAL,"S",1)) D SIGN^GMRAOR6(120.8,GMRAPA,.GMRAL) ; S/S
|
---|
| 94 | .; Comments
|
---|
| 95 | .I $D(GMRAL(GMRAL,"N",1)) D COMM^GMRAOR8(GMRAPA,.GMRAL) ; Add comments
|
---|
| 96 | .D EN1^GMRAOR9 K GMRAAR ;stuff ingredients & classes
|
---|
| 97 | .;Re-Index Whole file entry
|
---|
| 98 | .K DIK,DA S DIK="^GMR(120.8,",DA=GMRAPA D IX^DIK K DIK,DA
|
---|
| 99 | .D UNLOCK^GMRAUTL(120.8,GMRAPA)
|
---|
| 100 | .S ^TMP($J,"GMRASF",1,GMRAPA)="" D RANGE^GMRASIGN(1) ;**19 Send bulletins upon signing-off
|
---|
| 101 | .S GMRASITE(0)=$G(^GMRD(120.84,+GMRASITE,0)) D VAD^GMRAUTL1($P(^GMR(120.8,GMRAPA,0),U),"",.GMRALOC,.GMRANAM,"",.GMRASSN),BULLT^GMRASEND ;19 Send mark chart bulletin
|
---|
| 102 | .Q:($P(GMRAL(GMRAL),U,1)'["D"!($P(GMRAL(GMRAL),U,8)'["o")) ;quit if not an observed drug reaction
|
---|
| 103 | .; add Adverse Reaction report.
|
---|
| 104 | .I $G(GMRAL(GMRAL,"O",1))'="" D ADVERSE^GMRAOR7(GMRAPA,.GMRAL)
|
---|
| 105 | .Q
|
---|
| 106 | Q
|
---|