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

INHSG.m

Go to the documentation of this file.
  1. INHSG ;JSH,LD; 19 Oct 1999 11:27 ;Generic Interface - Generator routines [ 06/26/2001 10:51 AM ]
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. ;CHCS TOOLS_460; GEN 4; 21-APR-1997
  1. ;COPYRIGHT 1988, 1989, 1990 SAIC
  1. ;
  1. TRX(INX,INT,IND) ;Transformation entry point
  1. ; called from INTX FileMan function
  1. ;INX = data
  1. ;INT = type of data (from file 4012.1)
  1. ;IND = direction (I or O)
  1. N X,Y,DIC
  1. I IND=""!("IO"'[IND) Q INX
  1. S X=INT,DIC="^INTHL7FT(",DIC(0)="MZ" D ^DIC
  1. Q:Y<0 INX
  1. S INT=+Y,X=INX
  1. I IND="I" X $G(^INTHL7FT(INT,2)) Q $G(X)
  1. X $G(^INTHL7FT(INT,3)) Q $G(X)
  1. ;
  1. MEDT ;Message Entry/Edit
  1. ; INSTD = INTERFACE STANDARD
  1. ;
  1. K DIC,DIE,DA,Y,DWN
  1. N INSTD,DDSFILE,DR,DDSPAGE,DDSPARM,DDSSAVE,INFORM
  1. W !! S DIC="^INTHL7M(",DIC(0)="QAELM",DIC("A")="Select MESSAGE: " D ^DIC K DIC Q:Y<0
  1. S BHL("MSG")=+Y ;cmi/sitka/maw get message ien
  1. ;Determine namespace, default to "HL" (HL7)
  1. S INSTD=$P(^INTHL7M(+Y,0),U,12),INSTD=$S(INSTD="NCPDP":"NC",INSTD="HL7":"HL7",INSTD="X12":"X12",1:"HL")
  1. S DIE="^INTHL7M(",DA=+Y
  1. S DWN=$S($G(INSTD)="X12":"INHSG X12 MESSAGE",$G(INSTD)="NC":"INHSG NCPDP MESSAGE",1:"INHSG MESSAGE")
  1. I $$SC^INHUTIL1 D G:'$D(DWFILE) MEDT
  1. .S INFORM=1 D ^DWC
  1. ;IHS Branch
  1. I '$$SC^INHUTIL1,$D(^DIST(.403,"B",DWN)) D G:'$G(DDSSAVE) MEDT
  1. .S DDSFILE=DIE,DR="["_DWN_"]",DDSPAGE=1,DDSPARM="SC",INFORM=1
  1. .D ^DDS
  1. I '$$SC^INHUTIL1,'$G(INFORM) S DR="[INHSG MESSAGE]" D ^DIE
  1. D CHARUP^BHLU(BHL("MSG")) ;cmi/sitka/maw update enc chars
  1. W !! S X=$$YN^UTSRD("Generate Scripts? ;1","") G:'X MEDT
  1. S Y=DA D EN^INHSGZ G MEDT
  1. ;
  1. FEDT ;Field Entry/Edit
  1. K DIC,DIE,DA,Y,DWN
  1. W !! S DIC="^INTHL7F(",DIC(0)="QAELM",DIC("A")="Select FIELD: " D ^DIC K DIC Q:Y<0
  1. S DIE="^INTHL7F(",DA=+Y D EDIT^INHT("INHSG FIELD") G FEDT
  1. ;
  1. SEDT ;Segment Entry/Edit
  1. K DIC,DIE,DA,Y,DWN
  1. W !! S DIC="^INTHL7S(",DIC(0)="QAELM",DIC("A")="Select SEGMENT: " D ^DIC K DIC Q:Y<0
  1. S DIE="^INTHL7S(",DA=+Y D EDIT^INHT("INHSG SEGMENT") G SEDT
  1. ;
  1. DEDT ;Data Type Entry/Edit
  1. K DIC,DIE,DA,Y,DWN
  1. W !! S DIC="^INTHL7FT(",DIC(0)="QAELM",DIC("A")="Select DATA TYPE: " D ^DIC K DIC Q:Y<0
  1. S DIE="^INTHL7FT(",DA=+Y D EDIT^INHT("INHSG DATA TYPE") G DEDT
  1. ;
  1. OTHER ;Other functionality in window
  1. Q:'$D(DWFCHG) Q:'X N DIC,Y,INF
  1. I X D
  1. . D MESS^DWD() S DIC=1,DIC(0)="QAEM" D ^DIC S:Y>0 DWSFLD(.05)=$P(Y,U,2),INF=+Y I Y<0 S DWSFLD(.04)="NO" Q
  1. . S DIC=.402,DIC(0)="QAE",DIC("S")="I $P(^(0),U,4)=INF" D ^DIC
  1. . I Y<0 S DWSFLD(.04)="NO" Q
  1. . S DWSFLD(.06)=$P(Y,U,2)
  1. . W ! S X=$$SOC^UTIL("Lookup Parameter: ;;;;FORCED LAYGO;;;1","","FORCED LAYGO^NO LAYGO^LAYGO ALLOWED",0) I X=""!($E(X)=U) S DWSFLD(.04)="NO" Q
  1. . S DWSFLD(.07)=$E(X)
  1. Q
  1. ;
  1. ;