KLACHT3 ; Klachtenbehandeling [ 12/27/2003 10:46 AM ] ; INIT New I,J,R,RemRubr,PutRubr,Cache,TempPar,LEVNr,KLNr,Omschr Set KlachtId=$G(KlachtId),sFL("ID")=KlachtId If KlachtId Do .If $G(RegPar("RegPar")) Merge TempPar=RegPar .If $G(CopieId) Do ..Kill RegPar("BTRELEM"),RegPar("RZTELEM") ..Set sFL(1)=$G(^KlachtCD(KlachtId,CopieId)) ..Set sFL("O",1)=$G(^KlachtCD(KlachtId,CopieId,"O",1)) ..Merge sFL("O")=^KlachtCD(KlachtId,CopieId,"O") ..Merge:'$G(EditContact) sFL("C")=^KlachtCD(KlachtId,CopieId,"C") ..Merge sFL("B")=^KlachtCD(KlachtId,CopieId,"B"),RegPar("BTRELEM")=sFL("B") ..Merge sFL("R")=^KlachtCD(KlachtId,CopieId,"R"),RegPar("RZTELEM")=sFL("R") .Else Do ..Kill RegPar("BTRELEM"),RegPar("RZTELEM") ..Set sFL(1)=$G(^KlachtD(KlachtId)) ..Set sFL("O",1)=$G(^KlachtD(KlachtId,"O",1)) ..Merge sFL("O")=^KlachtD(KlachtId,"O") ..Merge:'$G(EditContact) sFL("C")=^KlachtD(KlachtId,"C") ..Merge sFL("B")=^KlachtD(KlachtId,"B") ..Set I="" ..For Set I=$O(TempPar("BTRELEM",I)) Quit:I="" Set R=TempPar("BTRELEM",I),J=$O(sFL("B",""),-1)+1,sFL("B",J)=R ..Merge RegPar("BTRELEM")=sFL("B") ..Merge sFL("R")=^KlachtD(KlachtId,"R") ..Set I="" ..For Set I=$O(TempPar("RZTELEM",I)) Quit:I="" Set R=TempPar("RZTELEM",I),J=$O(sFL("R",""),-1)+1,sFL("R",J)=R ..Merge RegPar("RZTELEM")=sFL("R") .Set:$P(sFL(1),D)="L" RegPar("LEVNR")=$P(sFL(1),D,2) Set:$P(sFL(1),D)="K" RegPar("KLNR")=$P(sFL(1),D,2) Else Do .Set:'$G(CUserId) CUserId=$$DEVUSER^vhUSER($$IO^cQ5,1) .Set LEVNr=$G(RegPar("LEVNR")),KLNr=$G(RegPar("KLNR")) .Set sFL(1)="",$P(sFL(1),D,4)=$G(RegPar("TYPE")),$P(sFL(1),D,5)=$G(RegPar("GROEP")) .Set ($P(sFL(1),D,21),$P(sFL(1),D,30))=CUserId,$P(sFL(1),D,31)=$H .Set:LEVNr $P(sFL(1),D,1,2)="L\"_LEVNr .Set:KLNr $P(sFL(1),D,1,2)="K\"_KLNr,$P(sFL(1),D,21)=$$INTVW^KLOPV(KLNr) .Set $P(sFL(1),D,9)=$G(RegPar("ONDERW")),$P(sFL(1),D,10)=$G(RegPar("WAARDE")) .Set:$D(RegPar("IPREG")) $P(sFL(1),D,30)=RegPar("IPREG") .Set:$D(RegPar("IPBEH")) $P(sFL(1),D,23)=RegPar("IPBEH"),$P(sFL(1),D,24)=$H .Merge sFL("O")=RegPar("OMSCHR") .Merge sFL("B")=RegPar("BTRELEM") .Merge sFL("R")=RegPar("RZTELEM") If '$G(RegPar("DUMMY")) Do .Set (RemRubr,PutRubr)="" .If sModT'="D" Do ..Quit:sModT="P" ..If $G(EditContact) Set RemRubr="CONTACT",PutRubr="TYPE;GROEP;VERANTW;SUBTYPE;PRGROEP;BTRELEM;OMSCHR;VWBEH;RZTYP;RZTYP2;RZTYP3;STREEFDAT;RZTELEM;REG;BEHANDELD;CLOSE" ..Else If $G(Behandel) Do ...Set:$G(RegPar("PROF")) PutRubr="BTRELEM" ...Set RemRubr="VWBEH;RZTYP;STREEFDAT;ONDERWERP;OMSCHR" Set:sModT="N" RemRubr=RemRubr_";TYPE;GROEP" ...If $P(sFL(1),D,23),$P(sFL(1),D,24) ...Else Set $P(sFL(1),D,23,24)=CUserId_D_$H ..Else Do ...Set RemRubr="KLLEVVAL;KLLEVPERS;ONDERWERP;TYPE;GROEP;VERANTW;OMSCHR" ...Set RemRubr=RemRubr_";SUBTYPE;BTRELEM;VWBEH;RZTYP;STREEFDAT" ..Set RemRubr=RemRubr_";PRGROEP" .Else Set RemRubr="OMSCHR" .Set:$E(RemRubr)=";" $E(RemRubr)="" Set:$E(PutRubr)=";" $E(PutRubr)="" .Set:$G(ModAllFields) RemRubr="KLLEVVAL;KLLEVPERS;ONDERWERP;TYPE;GROEP;VERANTW;OMSCHR;SUBTYPE;BTRELEM;VWBEH;RZTYP;STREEFDAT;PRGROEP" .For Quit:$P(RemRubr,";")="" Do REMATTR^vhScherm($P(RemRubr,";"),"DH","DH") Set RemRubr=$P(RemRubr,";",2,99) .For Quit:$P(PutRubr,";")="" Do PUTATTR^vhScherm($P(PutRubr,";"),"DH","DH") Set PutRubr=$P(PutRubr,";",2,99) .If $G(sScrn)'="KLACHTWF",$P(sFL(1),D)="K" Do REMATTR^vhScherm("KLREGIO","H","H") .Set Cache="B" Do INIT^vhLIST("KLACHT","BTRELEM",.BTRELEM) .Set Cache="R" Do INIT^vhLIST("KLACHT","RZTELEM",.RZTELEM) Set LEVNr=$G(RegPar("LEVNR")),KLNr=$G(RegPar("KLNR")) If LEVNr Set R=^KLE(^KL1(LEVNr),0) Else If KLNr Set R=^KKL(^KK1(KLNr),0) Else Set R="" Set:$P(R,D,9)="" $P(R,D,9)="N" Set RegPar("TAAL")=$P(R,D,9) Merge sFL("PAR")=RegPar Do:$D(Print) .Quit .Do GETWRAP^vhBIGEDIT("sFL(""O"")",69,.Omschr,"G","~","","") .Kill sFL("O") .For I=1:1:$O(Omschr(""),-1) Do .. Set sFL("O",I)=$J("",$P(Omschr(I),"`",4))_$P(Omschr(I),"`",5) .. Kill Omschr(I) .For I=11:1:100 Kill sFL("O",I) Quit ; ; Keys bevat de te aktiveren keys ; AktKey is de te aktiveren key RAADPL(KlachtId,CopieId,Opvolg,NoMod,Keys,AktKey) New I,R,sFL,LD,Input,BTRELEM,RZTELEM,RegPar,SubKey,Text If '$G(CUserId) New CUserId Set CUserId=$$CUSERID^KLACHT() If CUserId Do .Do INIT^vhLIST("KLACHT","RAADPL",.LD) .If $D(^KlachtD(KlachtId,"C")) For I=1:1 Quit:'$D(LD("B",I)) If $P(LD("B",I),"`",2)="C" Set $P(LD("B",I),"`")=$P(LD("B",I),"`")_"*" .If $L($G(Keys)) Do ..For I=1:1 Quit:'$D(LD("B",I)) Do KDISABLE^KLACHT(.LD,$P(LD("B",I),"`",6)) ..For I=1:1:$L(Keys) Do KENABLE^KLACHT(.LD,$E(Keys,I)) .Else Do ..Do:$G(CopieId) KDISABLE^KLACHT(.LD,"P") ..Do:'$G(Opvolg) KDISABLE^KLACHT(.LD,")"),KDISABLE^KLACHT(.LD,"(") ..Do:$$STATUS^KLACHTO(KlachtId)'<3 KDISABLE^KLACHT(.LD,"W") ..If '$D(^KlachtD(KlachtId,"B")),'$D(^KlachtD(KlachtId,"R")),'$O(^KlachtD(KlachtId,"O","")),'$O(^KlachtD(KlachtId,"C","")) Do KDISABLE^KLACHT(.LD,"T") ..Do:$G(NoMod) KDISABLE^KLACHT(.LD,"W") .If $L($G(AktKey)) Do ..Set SubKey=$P(AktKey,"#",2),AktKey=$P(AktKey,"#") ..For I=1:1 Quit:'$D(LD("B",I)) If $P(LD("B",I),"`",6)=AktKey Set $P(LD("B"),"`",5)=I Quit .Set Text(1)="" .Do WRITE^vhLIST(.LD) .Do DISPLAY^vhScherm("KLACHTR",,,,,1) .For Set Input=$S($L($G(AktKey)):AktKey,1:$$SCROLL^vhLIST(.LD)) Do Quit:"\O\)\(\"[(D_$P(Input,D)_D) ..Set AktKey="" ..If Input="T" Set Input=$$TOON(KlachtId,$G(SubKey)),SubKey=$P(Input,D,2),Input=$P(Input,D) ..If Input="P" Do PRINT(KlachtId,$G(CopieId)) Set SubKey="" ..If Input="W" Do EDIT^KLACHT(KlachtId),DISPLAY^vhScherm("KLACHTR",,,,,1) Set SubKey="" ..If Input="C" Do RPLContact(KlachtId),WRITE^vhLIST(.LD),DISPLAY^vhScherm("KLACHTR",,,,,1) Set SubKey="" ..If "()"[Input,$L($G(SubKey)) Set Input=Input_"\T#"_SubKey,SubKey="" Quit $G(Input) ; RPLKL New R,KLNr Set R=^HULP(%J,Opv("SELECT")),KLNr=$P(R,D,2) Do STORE^vhTERMINA() Set R=$$RAADPL^KLANT(KLNr,1,1) Do REFRESH^vhTERMINA() Quit ; ; DocTyp = "I" intern document ; = "W" werkdocument PRINT(KlachtId,CopieId,DocTyp,Print) New I,sFL,PrDev,BevatNS,Tekst Set DocTyp=$G(DocTyp)_"F",PrDev=$G(Print("DEV")) Set:"\IF\WF\"'[(D_DocTyp_D) DocTyp="IF" Do:0[PrDev INIT^vhPRINTER("","","CA;BL") Do:$D(Print) .Set:DocTyp="WF" BevatNS=$$BEVATNS(KlachtId,CopieId) .Do PRINT^vhScherm3("KLACHT"_DocTyp,"",1) .Write # .Do:0[PrDev CLOSE^vhPRINTER Quit ; BEVATNS(KlachtId,CopieId) New R,Klacht,PRNr,BevatNS,ElemTyp Set BevatNS=0 If CopieId Merge Klacht=^KlachtCD(KlachtId,CopieId) Else Merge Klacht=^KlachtD(KlachtId) For ElemTyp="R","B" Do Quit:BevatNS .Set Element="" .For Set Element=$O(Klacht(ElemTyp,Element)) Quit:Element="" Do Quit:BevatNS ..Set R=Klacht(ElemTyp,Element) ..Quit:$P(R,"#")'="P" ..Set PRNr=$P(R,"#",2) ..Quit:'$D(^KPR(PRNr)) ..Set R=^KPR(PRNr,1),BevatNS='$P(R,D,20) ..Set:BevatNS BevatNS='$$ISHALUX^PRODUKT2(PRNr) Quit BevatNS ; PROMS(Lijnen) New sData,sLen Set Lijnen=$G(Lijnen,2) Set:Lijnen="?" Lijnen=99999 Set sLen=Print("KOL")-Print("LMARG")-$P(sFR,"`",6) Do GETWRAP^vhBIGEDIT("sFL(""O"")",sLen,.sData,"D","AXF~","") For sData=1:1:Lijnen Quit:'$D(sData(sData)) Do .For Quit:$E($P(sData(sData),"`",5),$L($P(sData(sData),"`",5)))'=" " Do ..Set $P(sData(sData),"`",5)=$E($P(sData(sData),"`",5),1,$L($P(sData(sData),"`",5))-1) .Set sSort(sScrnPos+($P(sFR,"`",5)+sData-1),$P(sFR,"`",6)+$P(sData(sData),"`",4))=$P(sData(sData),"`",5) Quit $P($G(sData(1)),"`",5) ; ; Afdrukken betreft en rechtzetting op intern formulier PRBTRZ() New I,R,Line,Kol,Length,Element,BtrTitel,RztTitel If $O(sFL("B",""),-1)!$O(sFL("R",""),-1) Do .Set BtrTitel="Betreft",RztTitel="Rechtzetting" .Set Line=$O(sSort(""),-1),Line=Line+$O(sSort(Line,""),-1) .Set Kol=$P(sFR,"`",6),Length=$P(sFR,"`",10) .Set R=$J("",$L(BtrTitel)+1),R=$$LINE^vhRtn1("F",Length\2-$L(R),"")_$E($$LINE^vhRtn1("F",3,2),2) .Set R=R_$J("",$L(RztTitel)+2),R=R_$$LINE^vhRtn1("F",Length-$L(R)-$L(BtrTitel)-1,"")_$C(13) .Set sSort(Line,Kol+$L(BtrTitel)+1)=R,sSort(Line,Kol)=BtrTitel_"`B",sSort(Line,Kol+(Length\2)+2)=RztTitel_"`B" .For Element=1:1 Quit:'$D(sFL("B",Element))&'$D(sFL("R",Element)) Do ..If $D(sFL("B",Element)) Set R=$$CONVELEM^KLACHT2(sFL("B",Element)) ..Else Set R="" ..Set R=R_$J("",Length\2-$L(R))_$$LINE^vhRtn1("B",1,1)_" " ..Set:$D(sFL("R",Element)) R=R_$$CONVELEM^KLACHT2(sFL("R",Element)) ..Set sSort(Line+Element,Kol)=R Quit "" ; ; Afdrukken betreft en rechtzetting op formulier werkdokument PRBT() New R,Element,Line,Kol Set Line=$P(sFR,"`",5),Kol=$P(sFR,"`",6),Count=0 For Element=1:1 Quit:'$D(sFL("B",Element)) Do Quit:Line>45 .Set R=sFL("B",Element) .Quit:$P(R,"#")="P" .Set R=$$CONVELEM^KLACHT2(R,1,Taal),Line=Line+1 .Set sSort(Line-1,Kol)=R Set Line=$P(sFR,"`",5) For Element=Element+1:1 Quit:'$D(sFL("B",Element)) Do Quit:Line>45 .Set R=sFL("B",Element) .Quit:$P(R,"#")="P" .Set R=$$CONVELEM^KLACHT2(R,1,Taal),Line=Line+1 .Set R=sSort(Line-1,Kol)_D_R,R=$P(R,D)_$J("",30-$L($P(R,D)))_$P(R,D,2) .Set sSort(Line-1,Kol)=R For Element=Element+1:1 Quit:'$D(sFL("B",Element)) Do Quit:sSort(Line-1,Kol)["..." .Set R=sFL("B",Element) .Quit:$P(R,"#")="P" .Set R=sSort(Line-1,Kol),$E(R,31,99)="...",sSort(Line-1,Kol)=R Quit "" ; ; Toon registratie, behandeling, omschrijving TOON(KlachtId,Toon) New I,R,Btr,Rzt,Oms,Cnt,PopPos,Input,MenuPos,Cache,Tabel,Count,Exit Do:'$L($G(Toon)) .Set Btr=''$D(^KlachtD(KlachtId,"B")),Rzt=''$D(^KlachtD(KlachtId,"R")),Oms=''$O(^KlachtD(KlachtId,"O","")),Cnt=''$O(^KlachtD(KlachtId,"C","")) .If Btr+Rzt+Oms+Cnt=1 Set Toon=$S(Btr:"B",Rzt:"R",1:"O") .Else Do ..For I=1:1 Set R=$G(LD("B",I)) Quit:R="" If $P(R,"`",6)="T" Set PopPos=$P($P(R,"`",4),";",1,2) Quit ..Set Count=0 ..Set:Btr Count=Count+1,Toon(Count)="B`Registratie" ..Set:Rzt Count=Count+1,Toon(Count)="R`Behandeling" ..Set:Oms Count=Count+1,Toon(Count)="O`Omschrijving" ..If 'Oms,Cnt Set Count=Count+1,Toon(Count)="O`Contacten" ..Set $P(PopPos,";")=$P(PopPos,";")-Count,$P(PopPos,";",2)=$P(PopPos,";",2)+2 ..Set Toon=$$WILD^vhPOPUP(PopPos,"OB1-","",.Toon) Do:$L(Toon) .Do STORE^vhTERMINA() .Set Cache=Toon .Do INIT^vhLIST("KLACHT",$S(Toon="B":"BTRELEM",Toon="R":"RZTELEM",1:"OMSCHR"),.Tabel) .Do:Cache'="O" ..Set $P(Tabel("SET"),"`",4)="I",$P(Tabel("SET"),"`",5)="IU" ..Set $P(Tabel("SET"),"`",7)=1 ..Set R=$P(Tabel("SET"),"`"),$P(R,";",3)=20,$P(Tabel("SET"),"`")=R,Tabel("POS")=R ..Set Tabel("SELECT")=1 .Merge Cache("B")=^KlachtD(KlachtId,"B"),Cache("R")=^KlachtD(KlachtId,"R") .Do:$O(^KlachtD(KlachtId,"O","")) ..Merge Cache("O")=^KlachtD(KlachtId,"O") ..Do GETWRAP^vhBIGEDIT("Cache(""O"")",78,.R,"G","~","","") ..For R=1:1:R Set Cache("O",R)=$P(R(R),"`",5) .Do Contact2Omschr(KlachtId,.Cache) .Do WRITE^vhLIST(.Tabel) .For Set Input=$$SCROLL^vhLIST(.Tabel) Quit:"\-\ENTER\"[(D_Input_D) Do Quit:Exit ..Set Exit=0 ..For I=1:1 Quit:'$D(LD("B",I)) Do Quit:Exit ...Quit:$P(LD("B",I),"`",3)["H" Quit:$P(LD("B",I),"`",3)["D" ...Set:";"_$P(LD("B",I),"`",2)_";"[(";"_Input_";") Input=$P(LD("B",I),"`",6) ...Set Exit=$P(LD("B",I),"`",6)=Input ..If Exit Set Input=Input_D_Toon Quit ..If Input="SPEC" Do ...Set MenuPos=Tabel("POS")+Tabel("SELECT")-2_";C;79" ...Do CALLSPEC^vhMenu(MenuPos,"KLACHTOSP","") ..Do EXEC^vhMenu("KLACHTOSP",.Input) .Do REFRESH^vhTERMINA() Quit $G(Input) ; ; De contacten toevoegen aan de lijst van de omschrijving Contact2Omschr(KlachtId,Cache) New R,Contact Set Contact="" For Set Contact=$O(^KlachtD(KlachtId,"C",Contact)) Quit:Contact="" Do . Kill R . Set R=^KlachtD(KlachtId,"C",Contact) . Set:$O(Cache("O",""),-1) Cache("O",$O(Cache("O",""),-1)+1)="&SContact" . Set Cache("O",$O(Cache("O",""),-1)+1)="&Fªi"_$$USERNAME^vhUSER($P(R,D))_", "_$$FMTDT^vhDTyp($P(R,D,2))_"ªI" . Set R(1)=$P(R,D,3),R="R" . Do GETWRAP^vhBIGEDIT("R",78,.R,"G","~","","") . For R=1:1:R Set Cache("O",$O(Cache("O",""),-1)+1)=$P(R(R),"`",5) Quit ; ; Check menuitem linkdetail CLDETAIL(Cache,Tabel,Key) New Ok,Ref,Type Do:$G(Tabel("SELECT")) .Set Type=$P($G(Cache(Cache,Tabel("SELECT"))),"#"),Ok=Type=Key .Do:Ok ..Set Ref=$P(Cache(Cache,Tabel("SELECT")),"#",2) ..If Key="O" Set Ok=$D(^KO1(Ref,"F")) Set:Ok Ok='$P(^KO1(Ref,"F"),D,2) ..If Key="B" Set Ok=$D(^KU1(Ref,"F")) Set:Ok Ok='$P(^KU1(Ref,"F"),D,2) ..If Key="F" Set Ok=$D(^KFA("F",Ref)) ..If Key="Z" Set Ok=$D(^KFAP("F",Ref)) ..If Key="P" Set Ok=$D(^KPR(Ref)) Quit $G(Ok) ; ; Linkdetail LDETAIL(Cache,Tabel) New R,Type,Ref Do STORE^vhTERMINA() Set Type=$P(Cache(Cache,Tabel("SELECT")),"#"),Ref=$P(Cache(Cache,Tabel("SELECT")),"#",2) Do:Type="O" EXTERN^FLOWORD(Ref) Do:Type="B" EXTERN^FLOWBON(Ref) Set:Type="F" R=$$LIJST^RPLFAKT(Ref,5) Set:Type="V" R=$$LIJST^RPLPROF(Ref,5) Set:Type="P" R=$$RAADPL^PRODUKT(Ref,1,1) Do REFRESH^vhTERMINA() Quit ; CHKCUST(KLNr,Index,DocNr) New R,Ok Set Index=$G(Index),Ok=0 If $L(Index) Do . Set KlachtId="" . For Set KlachtId=$O(^KlachtI(Index,DocNr,KlachtId)) Quit:KlachtId="" Set Ok=$$CHKCUST(KLNr,,KlachtId) Quit:Ok Else Set R=^KlachtD(KlachtId),Ok=$P(R,D,2)=KLNr Quit Ok ; RPLContact(KlachtId) New %J,Input,LD,Contact,sFL,Count,ContactId,LastContact,NewContact Set %J=$$%J^vhRtn1() For Do Quit:Input="O" Quit:'$D(^KlachtD(KlachtId,"C")) . Kill ^HULP(%J) . Set ContactId="",Count=0 . For Set ContactId=$O(^KlachtD(KlachtId,"C",ContactId)) Quit:ContactId="" Do . . Set R=^KlachtD(KlachtId,"C",ContactId) . . Set:Count Count=Count+1,^HULP(%J,Count)="&S" . . Set Count=Count+1,^HULP(%J,Count)="&Fªi"_$$USERNAME^vhUSER($P(R,D))_", "_$$FMTDT^vhDTyp($P(R,D,2))_"ªI" . . Kill Contact . . Set Contact="Contact",Contact(1)=$P(R,D,3) . . Do GETWRAP^vhBIGEDIT("Contact",78,.R,"G","~","","") . . For R=1:1:R Set Count=Count+1,^HULP(%J,Count)=$P(R(R),"`",5) . Do INIT^vhLIST("KLACHT","CONTACT",.LD) . Do WRITE^vhLIST(.LD) . Do:$G(NewContact) MOVE^vhLIST(.LD,"EN","") . For Set Input=$S($D(^HULP(%J)):$$SCROLL^vhLIST(.LD),1:"N") Do Quit:Input'="D" . . If Input="N" Do . . . New sFL . . . Write @FMTi . . . Set LastContact=$O(^KlachtD(KlachtId,"C",""),-1) . . . Do EDIT^KLACHT(KlachtId,,,1),DISPLAY^vhScherm("KLACHTR",,,,,1) . . . Set NewContact=LastContact'=$O(^KlachtD(KlachtId,"C",""),-1) Kill ^HULP(%J) Quit ;