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

PSOERXOE.m

Go to the documentation of this file.
  1. PSOERXOE ;ALB/BWF - eRx parsing Utilities ; 11/14/2019 3:46pm
  1. ;;7.0;OUTPATIENT PHARMACY;**581**;DEC 1997;Build 126
  1. ;
  1. Q
  1. ;
  1. ; GBL - GLOBAL WHERE DATA IS STORED
  1. ; IEN - IEN TO 52.49
  1. ; PTYPE - person type (P-Pharmacist, PR - Prescriber, S - Supervisor, FU - FollowUp Prescriber
  1. PERSON(GBL,CNT,PSOSITE,IEN,PTYPE) ;
  1. N F,DEAN,NPI,SPEC,CLINIC,LNAME,FNAME,MNAME,SUFF,PREF,ADDL1,ADDL2,CITY,STATE,ZIP,CNTRY,ALNAME,AFNAME,AMNAME,ASUFF,APREF
  1. N PSDAT,CLOOP,CNUM,CQUAL,ILOOP,ITYP,IVAL,PIEN,PIENS,VNV,BNAME,CERT2P,DATA2000,DEA,FAFNAME
  1. N FALNAME,FAMNAME,FAPREF,FASUFF,FFN,FLN,FMN,FNAME,FPRE,FSUF,HIN,IENS,MCAID,MCARE,MDEF,PTAG
  1. N PDEA,PFID,PHIN,PMCAID,PMCARE,PMDEF,PNCPDP,PNPI,PPOS,PREMS,PSTLN,PUPIN,REMS,SGBL,SSN,STATECS
  1. N STATCS,STLN,UPIN
  1. S F=52.48,IENS=IEN_","
  1. I PTYPE="P" S PIEN=$$GET1^DIQ(52.49,IEN,2.2,"I")
  1. I PTYPE="PR" S PIEN=$$GET1^DIQ(52.49,IEN,2.1,"I")
  1. I PTYPE="S" S PIEN=$$GET1^DIQ(52.49,IEN,2.6,"I")
  1. I PTYPE="FU" S PIEN=$$GET1^DIQ(52.49,IEN,307.1,"I")
  1. Q:'PIEN
  1. S PIENS=PIEN_","
  1. D GETS^DIQ(F,PIENS,"**","IE","PSDAT")
  1. D CONVXML^PSOERXX1("PSDAT")
  1. S DEAN=$G(PSDAT(F,PIENS,1.6,"E"))
  1. S NPI=$G(PSDAT(F,PIENS,1.5,"E"))
  1. S PTAG=$S(PTYPE="P":"Pharmacist",PTYPE="PR":"Prescriber",PTYPE="S":"Supervisor",PTYPE="FP":"FolloupPrescriber",1:"")
  1. Q:PTAG=""
  1. S SPEC=$G(PSDAT(F,PIENS,1.2,"E"))
  1. S CLINIC=$G(PSDAT(F,PIENS,2.1,"E"))
  1. S ADDL1=$G(PSDAT(F,PIENS,4.1,"E"))
  1. S ADDL2=$G(PSDAT(F,PIENS,4.2,"E"))
  1. S CITY=$G(PSDAT(F,PIENS,4.3,"E"))
  1. S STATE=$G(PSDAT(F,PIENS,4.4,"I"))
  1. S ZIP=$G(PSDAT(F,PIENS,4.5,"E"))
  1. S CNTRY=$G(PSDAT(F,PIENS,2.2,"E"))
  1. S VNV=$G(PSDAT(F,PIENS,19.1,"I")),VNV=$S(VNV:"Veterinarian",1:"NonVeterinarian")
  1. D C S @GBL@(CNT,0)="<"_PTAG_">"
  1. D C S @GBL@(CNT,0)="<"_VNV_">"
  1. ; identification
  1. S STLN=$G(PSDAT(F,PIENS,14.1,"E")),MCARE=$G(PSDAT(F,PIENS,14.2,"E")),MCAID=$G(PSDAT(F,PIENS,14.3,"E")),UPIN=$G(PSDAT(F,PIENS,14.4,"E"))
  1. S DEA=$G(PSDAT(F,PIENS,14.5,"E")),HIN=$G(PSDAT(F,PIENS,14.6,"E")),SSN=$G(PSDAT(F,PIENS,14.7,"E"))
  1. S NPI=$G(PSDAT(F,PIENS,15.1,"E")),CERT2P=$G(PSDAT(F,PIENS,15.2,"E")),DATA2000=$G(PSDAT(F,PIENS,15.3,"E"))
  1. S MDEF=$G(PSDAT(F,PIENS,15.4,"E")),REMS=$G(PSDAT(F,PIENS,15.5,"E")),STATECS=$G(PSDAT(F,PIENS,15.6,"E"))
  1. D C S @GBL@(CNT,0)="<Identification>"
  1. D BL(GBL,.CNT,"StateLicenseNumber",STLN),BL(GBL,.CNT,"MedicareNumber",MCARE),BL(GBL,.CNT,"MedicaidNumber",MCAID)
  1. D BL(GBL,.CNT,"UPIN",UPIN),BL(GBL,.CNT,"DEANumber",DEA),BL(GBL,.CNT,"HIN",HIN)
  1. D BL(GBL,.CNT,"SocialSecurityNumber",SSN),BL(GBL,.CNT,"NPI",NPI),BL(GBL,.CNT,"CertificateToPrescribe",CERT2P)
  1. D BL(GBL,.CNT,"Data2000WaiverID",DATA2000),BL(GBL,.CNT,"MutuallyDefined",MDEF),BL(GBL,.CNT,"REMSHealthcareProviderEnrollmentID",REMS)
  1. D BL(GBL,.CNT,"StateControlSubstanceNumber",STATECS)
  1. D C S @GBL@(CNT,0)="</Identification>"
  1. I $L(SPEC) D C S @GBL@(CNT,0)="<Specialty>"_SPEC_"</Specialty>"
  1. ; Practice location fields
  1. S PNCPDP=$G(PSDAT(F,PIENS,17.1,"E")),PSTLN=$G(PSDAT(F,PIENS,17.2,"E")),PMCARE=$G(PSDAT(F,PIENS,17.3,"E")),PMCAID=$G(PSDAT(F,PIENS,17.4,"E"))
  1. S PUPIN=$G(PSDAT(F,PIENS,17.5,"E")),PFID=$G(PSDAT(F,PIENS,17.6,"E"))
  1. S PDEA=$G(PSDAT(F,PIENS,18.1,"E")),PHIN=$G(PSDAT(F,PIENS,18.2,"E")),PNPI=$G(PSDAT(F,PIENS,18.3,"E")),PMDEF=$G(PSDAT(F,PIENS,18.4,"E"))
  1. S PREMS=$G(PSDAT(F,PIENS,18.5,"E"))
  1. S BNAME=$G(PSDAT(F,PIENS,18.6,"E"))
  1. ; practice location segment
  1. D C S @GBL@(CNT,0)="<PracticeLocation>"
  1. D C S @GBL@(CNT,0)="<Identification>"
  1. D BL(GBL,.CNT,"NCPDPID",PNCPDP),BL(GBL,.CNT,"StateLicenseNumber",PSTLN),BL(GBL,.CNT,"MedicareNumber",PMCARE),BL(GBL,.CNT,"MedicaidNumber",PMCAID)
  1. D BL(GBL,.CNT,"UPIN",PUPIN),BL(GBL,.CNT,"FacilityID",PFID),BL(GBL,.CNT,"DEANumber",PDEA),BL(GBL,.CNT,"HIN",PHIN)
  1. D BL(GBL,.CNT,"NPI",PNPI),BL(GBL,.CNT,"MutuallyDefined",PMDEF),BL(GBL,.CNT,"REMSHealthcareSettingEnrollmentID",PREMS)
  1. D C S @GBL@(CNT,0)="</Identification>"
  1. D BL(GBL,.CNT,"BusinessName",BNAME)
  1. D C S @GBL@(CNT,0)="</PracticeLocation>"
  1. ; name
  1. S LNAME=$G(PSDAT(F,PIENS,.02,"E")),FNAME=$G(PSDAT(F,PIENS,.03,"E")),MNAME=$G(PSDAT(F,PIENS,.04,"E"))
  1. S SUFF=$G(PSDAT(F,PIENS,.05,"E")),PREF=$G(PSDAT(F,PIENS,.06,"E"))
  1. D ONAME^PSOERXOU(GBL,.CNT,"Name",LNAME,FNAME,MNAME,SUFF,PREF)
  1. ; former name
  1. S FLN=$G(PSDAT(F,PIENS,2.4,"E")),FFN=$G(PSDAT(F,PIENS,2.5,"E")),FMN=$G(PSDAT(F,PIENS,2.6,"E"))
  1. S FSUF=$G(PSDAT(F,PIENS,2.7,"E")),FPRE=$G(PSDAT(F,PIENS,2.8,"E"))
  1. D ONAME^PSOERXOU(GBL,.CNT,"FormerName",FLN,FFN,FMN,FSUF,FPRE)
  1. D OADD^PSOERXOU(GBL,.CNT,ADDL1,ADDL2,CITY,STATE,ZIP,CNTRY)
  1. ; agent name
  1. S ALNAME=$G(PSDAT(F,PIENS,5.1,"E")),AFNAME=$G(PSDAT(F,PIENS,5.2,"E")),AMNAME=$G(PSDAT(F,PIENS,5.3,"E"))
  1. S ASUFF=$G(PSDAT(F,PIENS,5.4,"E")),APREF=$G(PSDAT(F,PIENS,5.5,"E"))
  1. ; agent former name
  1. S FALNAME=$G(PSDAT(F,PIENS,5.1,"E")),FAFNAME=$G(PSDAT(F,PIENS,5.2,"E")),FAMNAME=$G(PSDAT(F,PIENS,5.3,"E"))
  1. S FASUFF=$G(PSDAT(F,PIENS,5.4,"E")),FAPREF=$G(PSDAT(F,PIENS,5.5,"E"))
  1. I $L(ALNAME) D
  1. .D C S @GBL@(CNT,0)="<PresriberAgent>"
  1. .D ONAME^PSOERXOU(GBL,.CNT,"Name",ALNAME,AFNAME,AMNAME,ASUFF,APREF)
  1. .I $L(FALNAME) D ONAME^PSOERXOU(GBL,.CNT,"FormerName",FALNAME,FAFNAME,FAMNAME,FASUFF,FAPREF)
  1. .D C S @GBL@(CNT,0)="</PresriberAgent>"
  1. S SGBL=$NA(^PS(52.48,PIEN,11))
  1. D OCOMM^PSOERXOU(GBL,SGBL,.CNT,PIENS,52.4811,52.48,12,PIENS)
  1. ; prescriber Place of service
  1. S PPOS=$G(PSDAT(F,PIENS,2.3,"E"))
  1. D BL(GBL,.CNT,"PrescriberPlaceOfService",PPOS)
  1. D C S @GBL@(CNT,0)="</"_VNV_">"
  1. D C S @GBL@(CNT,0)="</"_PTAG_">"
  1. Q
  1. ; GBL - GLOBAL WHERE DATA IS STORED
  1. ; IEN - IEN TO 52.49
  1. PRORENRQ(GBL,CNT,IEN) ; Set up Prohibit Renewal Request
  1. N F,PROHIBIT
  1. S F=52.49
  1. S PROHIBIT=$$GET1^DIQ(52.49,IEN,301.3,"I")
  1. D BL(GBL,.CNT,"ProhibitRenewalRequest",PROHIBIT)
  1. Q
  1. ;
  1. BL(GBL,CNT,TAG,VAR) ;
  1. Q:VAR=""
  1. D C S @GBL@(CNT,0)="<"_TAG_">"_$$SYMENC^MXMLUTL(VAR)_"</"_TAG_">"
  1. Q
  1. C ;
  1. S CNT=$G(CNT)+1
  1. Q