Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXUACM

PXUACM.m

Go to the documentation of this file.
  1. PXUACM ; ISA/KWP - Convert PCE Mapping File and Immunization file ;3/3/1999
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**66**;AUG 12, 1996
  1. ; CONVERT(CHANGE,REPORT)
  1. ; CHANGE = 0: don't change anything.default.
  1. ; 1: make changes.
  1. ; REPORT = 0: no feedback.default.
  1. ; 1 = errors only.
  1. ; 2 = errors, warnings.
  1. ; 3 = errors, warnings, diagnostics.
  1. ; Return value: 1 = success.
  1. ; 0 = failure.
  1. W !,"Incorrect entry point. This program must be utilized through"
  1. W !,"the Extrinsic Function. For example: SET RESULT=$$CONVERT(1,2)"
  1. W !,"See program comments for parameter definitions."
  1. Q
  1. CONVERT(CHANGE,REPORT) ;see comments above
  1. N U,S,ERROR S U="^",S=";",ERROR=0
  1. S CHANGE=$G(CHANGE,0),REPORT=$G(REPORT,0)
  1. I REPORT=3 W !,"Building INACT and NEW arrays."
  1. D BUILD("IA",.INACT)
  1. D BUILD("NW",.NEW)
  1. I REPORT=3 W !,"Processing Inactive Codes:"
  1. D INACT I ERROR G CQ
  1. I REPORT=3 W !!,"Processing New Codes:"
  1. D NEW
  1. CQ Q $S(ERROR:0,1:1)
  1. BUILD(TYPE,ARR) ;TYPE-IA or NW, ARR-INACT or NEW
  1. N I,T
  1. F I=2:1 S T=$P($T(@TYPE+I),";",2) Q:T["//" S ARR($P(T,U))=$S(TYPE="IA":"",1:$P(T,U,2,3))
  1. Q
  1. INACT ;Inactivate subroutine
  1. N CPIECE,INO,MAP,DIE,DA,DR,IMM S INO=0 F S INO=$O(^PXD(811.1,INO)) Q:'INO S MAP=$G(^PXD(811.1,INO,0)) D:MAP="" NODE I 'ERROR W:REPORT=3 !,?5,MAP D
  1. .;check new entry to see if already added
  1. .I $D(NEW($P(MAP,S)))!($D(NEW($P($P(MAP,U,2),S)))) D
  1. ..S CPIECE=$S($P(MAP,U)["ICPT":1,1:2),IMM=$P($P(MAP,U,$S(CPIECE=1:2,1:1)),S),$P(NEW($P($P(MAP,U,CPIECE),S)),U,(2+CPIECE))=IMM
  1. .;do inactivate
  1. .I $D(INACT($P(MAP,S)))!($D(INACT($P($P(MAP,U,2),S)))) D
  1. ..S CPIECE=$S($P(MAP,U)["ICPT":1,1:2)
  1. ..I '$P(MAP,U,5) W:REPORT>1 !," WARNING: Map already Turned Off." S $P(INACT($P($P(MAP,U,CPIECE),S)),U,CPIECE)=1 Q
  1. ..I CHANGE S DIE=811.1,DA=INO,DR=".05////0",DUZ(0)="" D ^DIE
  1. ..I REPORT=3 W " Map Code Inactivated."
  1. ..I CHANGE S DIE="^AUTTIMM(",DA=$P($P(MAP,U,$S(CPIECE=1:2,1:1)),S),DR=".07////1",DUZ(0)="" D ^DIE
  1. ..I REPORT=3 W " IMM Inactivated."
  1. ..S $P(INACT($P($P(MAP,U,CPIECE),S)),U,CPIECE)=1
  1. I REPORT>1 S INO="" F S INO=$O(INACT(INO)) Q:INO="" S MAP=INACT(INO) I $P(MAP,U)'=1!($P(MAP,U,2)'=1) W !,"WARNING: Code "_INO_" does not contain a from/to entry to turn off in the map."
  1. Q
  1. NODE ;0 node of the map entry missing
  1. S ERROR=1
  1. I REPORT W !," ERROR: Map 0 Node Missing." I REPORT=3 W "(^PXD(811.1,"_INO_",0)"
  1. Q
  1. NEW ;New codes subroutine
  1. N CODE,DIC,DIE,DA,DR,SNAME,LNAME,X,Y,INO,IMINO,CERRFR,CERRTO
  1. ;remove new codes that have been added
  1. S CODE="" F S CODE=$O(NEW(CODE)) Q:CODE="" D NEW1 Q:ERROR
  1. Q
  1. NEW1 S LNAME=$P(NEW(CODE),U),SNAME=$P(NEW(CODE),U,2),CERRFR=$P(NEW(CODE),U,3),CERRTO=$P(NEW(CODE),U,4),IMINO=0
  1. ;check immunization on file
  1. I CERRFR!CERRTO D Q:ERROR
  1. .N LNAME2
  1. .S LNAME2=$P(^AUTTIMM($S(CERRFR:CERRFR,1:CERRTO),0),U)
  1. .I LNAME'=LNAME2 S ERROR=1 I REPORT W !,?5,"ERROR: Immunization for code "_CODE_" doesn't match update file."
  1. I CERRFR&CERRTO W:REPORT>1 !,"WARNING: Code "_CODE_" not added because from and to entries exist" Q
  1. I REPORT=3 W !,?5,"Adding: "_CODE_"."
  1. ;see PXTTU1 to see AUTTIMM numbering system.
  1. ;add new immunization
  1. I CERRTO!CERRFR I REPORT=3 W " IMM exist."
  1. I CHANGE I +CERRFR=0&(+CERRTO=0) D Q:ERROR
  1. .S $P(^AUTTIMM(0),"^",3)=0
  1. .S DIC="^AUTTIMM(",DIC(0)="",X=LNAME K DD,DO D FILE^DICN I Y<0 W:REPORT !,?5,"ERROR: Fileman error saving immunization" W:REPORT=3 "-"_LNAME S ERROR=1 Q
  1. .S IMINO=$P(Y,U),$P(^AUTTIMM(IMINO,0),U,2)=SNAME,DIK="^AUTTIMM(",DA=IMINO D IX1^DIK
  1. .I REPORT=3 W " IMM added."
  1. ;add imm-cpt map entry
  1. I CERRTO,REPORT=3 W " IMM-CPT map exist."
  1. I CHANGE,'CERRTO D Q:ERROR
  1. .I CERRFR S IMINO=CERRFR
  1. .S DIC="^PXD(811.1,",DIC(0)="",X=IMINO_";AUTTIMM(" K DD,DO D FILE^DICN I Y<0 W:REPORT !,?5,"ERROR: Fileman error saving imm-cpt map entry" W:REPORT=3 "-"_X S ERROR=1 Q
  1. .S INO=$P(Y,U),$P(^PXD(811.1,INO,0),U,2)=CODE_";ICPT(^IMM^CPT^1",DIK="^PXD(811.1,",DA=INO D IX1^DIK
  1. .I REPORT=3 W " IMM-CPT map added."
  1. ;add cpt-imm map entry
  1. I CERRFR,REPORT=3 W " CPT-IMM map exist."
  1. I CHANGE,'CERRFR D Q:ERROR
  1. .I CERRFR S IMINO=CERRTO
  1. .S DIC="^PXD(811.1,",DIC(0)="",X=CODE_";ICPT(" K DD,DO D FILE^DICN I Y<0 W:REPORT !,?5,"ERROR: Fileman error saving cpt-imm map entry" W:REPORT=3 "-"_X S ERROR=1 Q
  1. .S INO=$P(Y,U),$P(^PXD(811.1,INO,0),U,2)=IMINO_";AUTTIMM(^CPT^IMM^1",DIK="^PXD(811.1,",DA=INO D IX1^DIK
  1. .I REPORT=3 W " CPT-IMM map added."
  1. Q
  1. IA ;These codes will be deleted from the map. The corresponding
  1. ;immunization will be inactivated.
  1. ;90711^COMBINED VACCINE
  1. ;90714^TYPHOID IMMUNIZATION
  1. ;90724^INFLUENZA IMMUNIZATION
  1. ;90726^RABIES IMMUNIZATION
  1. ;90728^BCG IMMUNIZATION
  1. ;90730^HEPATITIS A VACCINE
  1. ;90737^INFLUENZA B IMMUNIZATION
  1. ;//
  1. NW ;These codes will be added to the map. The second and third
  1. ;piece will be added to the immunization file.
  1. ;90476^ADENOVIRUS,TYPE 4^ADEN TYP4^
  1. ;90477^ADENOVIRUS,TYPE 7^ADEN TYP7^
  1. ;90581^ANTHRAX,SC^ANT SC^
  1. ;90585^BCG,PERCUT^BCG P^
  1. ;90586^BCG,INTRAVESICAL^BCG I^
  1. ;90592^CHOLERA, ORAL^CHOL ORAL^
  1. ;90632^HEPA ADULT^HEPA AD^
  1. ;90633^HEPA,PED/ADOL-2^HEPA PED/ADOL-2^
  1. ;90634^HEPA,PED/ADOL-3 DOSE^HEPA PED/ADOL-3^
  1. ;90636^HEPA/HEPB ADULT^HEPA/HEPB AD^
  1. ;90645^HIB,HBOC^HIB,HBOC^
  1. ;90646^HIB,PRP-D^HIB PRP-D^
  1. ;90647^HIB,PRP-OMP^HIB PRP-OMP^
  1. ;90648^HIB,PRP-T^HIB PRP-T^
  1. ;90658^FLU,3 YRS^FLU 3YRS^
  1. ;90659^FLU,WHOLE^FLU WHOLE^
  1. ;90660^FLU,NASAL^FLU NAS^
  1. ;90665^LYME DISEASE^LYME
  1. ;90669^PNEUMOCOCCAL,PED^PNEUMO-PED
  1. ;90675^RABIES,IM^RAB
  1. ;90676^RABIES,ID^RAB ID
  1. ;90680^ROTOVIRUS,ORAL^ROTO ORAL
  1. ;90690^TYPHOID,ORAL^TYP ORAL
  1. ;90691^TYPHOID^TYP
  1. ;90692^TYPHOID,H-P,SC/ID^TYP H-P-SC/ID
  1. ;90693^TYPHOID,AKD,SC^TYP AKD-SC
  1. ;90747^HEPB, ILL PAT^HEPB ILL
  1. ;90748^HEPB/HIB^HEPB/HIB
  1. ;//
  1. R S RESULT=$$CONVERT(1,3)
  1. Q