Podręcznik administratora

Dokumenty WPTools w badaniach

System umożliwia wykorzystanie w badaniu dokumentów WPTools zamiast klasycznych - FastReport.

Aby uruchomić mechanizm należy w definicji usługi ustawić szablon z dokumentem WPTools jako szablon nadrzędny usługi.

Wiąże się to jednak z innym zachowaniem dokumentów:

  1. Jeśli badanie zawiera kilka usług, to domyślnie dla każdej usługi będzie generowany oddzielny dokument. Aby temu przeciwdziałać można łączyć usługi (podobnie jak stomatologiczne). Dla takich usług wymagane jest jednak by miały ten sam raport nadrzędny dla wyniku. Generalnie łączenie dokumentów jest preferowana metodą definiowania usług.

  2. Dodano nowy Event na frxDoc - Notify informujący skrypt o zdarzeniach wymagających ewentualnych zmian w dokumencie (patrz niżej).

  3. Proces zakańczania usług jest sztywno powiązany z procesem zatwierdzania sekcji dokumentu. Stąd klawisz zatwierdzania usługi wywołuje zdarzenie w dokumencie i dopiero odpowiednia procedura z dokumencie równocześnie zatwierdza usługę i sekcję w dokumencie.

    Należy przyjąć, że do prawidłowego funkcjonowania zatwierdzania/cofania zatwierdzania koniecznie trzeba korzystać z nowej funkcji:  GrpConfirmRevertSafe jako obsługa zdarzenia Notify z parametrem: CONFIRM.

  4. Korekty dokumentów mogą się odbywać odwrotnie do zatwierdzania  - w zasadzie sprowadza się to do wykonania GrpConfirmRevertSafe z parametrem aRevert ustawionym na true. Oznacza to, że musimy po kolei cofać etapy badania/dokumentu.

    UWAGA: Nie jest to jednak preferowana metoda korygowania dokumentacji.

    Preferowaną metodą jest zastosowanie mechanizmu identycznego z istniejącym w obecnych badaniach FastReport - poprzez klawisz korekty na formatce badania. W takim rozwiązaniu dokument pozostaje cały czas w statusie poprzednim (przed korektą), a zmienia się jedynie status_korety usługi. Konieczne jest jednak prawidłowe ustawienie uprawnień do edycji dokumentu (patrz niżej ). W takiej sytuacji system odpala Event Notifyz parametrem 'CORRECTION' oraz powodem korekty w parametrze, który warto dodać gdzieś do treści dokumentu - np. w tabelce na końcu dokumentu.

    Przy zakańczaniu korekty wywoływany jest Event Notifyz parametrem 'CORRECTIONEND'. Podczas jego wykonywanie system koniecznie musi wykonać polecenie GrpConfirmRevertSafe z operacją 'S'  (zapis pól do BF) - to powoduje zapis odpowiednich pól do BF oraz zapis samego dokumentu.

  5. Prezentacja dokumentów w zakładkach - system zakłada, że zawsze prezentujemy zakładkę: "Przebieg wizyty" i w tej zakładce prezentuje MainFrame szablonu edycji; W zakładce "Zalecenia" prezentuje inny Frame - utworzony na podstawie komponentu o nazwie "Zalecenia " (obojętnie, czy frxWPComponent, czy frxFRComponent). Pola mogą się zazębiać między zakładkami - jeśli to samo pole występuje na obu zakładkach, to wypełnienie jednego zaktualizuje drugie.

  6. Event Notify jest również odpalany z parametrem: 'VIEWCHANGED' po odswieżeniu tabeli qrUslugi, zmianie zakładki i kilku innych rzadszych zdarzeniach. Skrypt na podstawie funkcji: InActualRes i InOrders może określić jakie bookmarki aktywować (choć zwykle nie jest to konieczne, gdyż do zakładek wykorzystujemy inne Framy)

  7. Dodano nowy event: OnPrepareDocument (var AName : string; var aUsl : string; var aRodzajDokumentu : integer; aSource: string; var aContinue : boolean) - wywoływany w czasie generowania dokumentów z wynikami.

    Parametr aUsl służy do zwracania informacji o tym, dla jakich usług generujemy dokument:

    - ALL  (lub pusty string) oznacza wszystkie usługi w grupie

    - MAIN - oznacza główną usługę z grupy

    - lista idx_uslug oddzielonych przecinkami - oznacza listę usług

    aRodzajDokumentu oznacza odpowiedni rodzaj dokumentu:  s_uslugi_dok_standardowe.idx_sdokumentu_uslugi

    aSource oznacza skąd ma pochodzić treść dokumentu. Obecnie dopuszczalne jest:

    - pusty ciąg - wówczas z głównego frame - czyli z zakładki przebiegu wizyty

    - 'Zalecenia' - z frame'u zaleceń

    - Nazwa dowolnego innego komponentu (frxFR/WPComponent) w połączeniu z ewentualnymi SIDami. Takie wywołanie spowoduje utworzenie odpowiedniego Frame'u i zapis wygenerowanej treści do dokumentu

    Planowane jest rozszerzenie o możliwość generowania na podstawie innego raportu.

    aContinue- gdy zwrócimy TRUE, to system po wygenerowaniu dokumentu ponownie wywoła Eventi wygeneruje kolejny dokument; FALSE - kończy generowanie dokumentów

  1. Dodano nowe uprawnienie (funkcję) do testowania uprawnień - bdView - podobna do bdEdit . Odczytać usługę wolno, gdy ma się choć jedno:
        - usługa ma status = X i ma się prawo do odczytuzgodnie ze stopniem poufności usługi (określonym w definicji usługi)
        - ma się prawo do edycji usługi na dowolnym etapie i dowolnym stanowisku
  1. Raport szablonu edycji powinien mieć ustawiony stopień_protekcji na : Niewolno usuwać; Wolno modyfikować; System nie zmienia stopnia protekcji automatycznie . Wówczas dokument szablonu bedzie mna zmianiać , ale nie będzie logowany log zmian.
  1. Wmenu podręcznym w badaniu dodano pozycję: Edytuj raport wyniku - dla szybkiego otwierania edytora raportów z raportem wyniku.
  1. do frxDoc dodano polecenia:  procedure SaveToCache (AFrame : string ) oraz function RestoreFromCache (AFrame : string ) : boolean ;   (opis w dokumencie na temat frxDoc )
  1. Dokumenty obecnie współpracują z BF v. 1 (BF1) oraz v 2. (BF2)
  1. Pola dokumentu wzbogacono o mozliwość określenia zjakiego zakresu faktów mają korzystać przy inicjowaniu (hospitalizacji, pobytu, badania, usługi, pacjenta) - dotyczy jedynie BF2
  1. Hitoria pól - działa z BF1 i BF2 ( dla klasycznych FR)
  1. Automatyczna inicjacja pól z BF2 - obsługuje też inicjację pól Lookup oraz formatowanych
  1. Dodano podstawowe Api dla BF2 - szczegóły w opisie frxDoc - do dodania obsługa relacji.
  1. Dodano protekcję faktów i podstawowe api do zarządzania nią.
  1. Dodano event : OnAddImageEvent z parametrem: AImage typy TJPEGImage  oraz aParam (obecnie nie wykorzystywanym) wysyłany, gdy apliakcja chce wkleić obrazek - np. z programu dicomView . Należy go obsłużyc np z wykorzystaniem funkcji: frxWPComponent.InsertImageToTable
  1. Inicjacja pól - jeśli nie okreslono warości domyslej jakimkolwiek sposobem (tez przez BF), to nie czyszczę pola przy inicjowaniu.
  1. Obrazki wstawone do tabeli moga być usuwane (prawy klawisz myszy) oraz przesuwane (drag/drop)
  1. Do BF2 dodano pole czas_faktu - określa czaszaistnienia zdarzenia odpowiadającego faktowi - np. czas pomiaru ciśnienia krwi; Jest wypełnianie przez funkcje operujące na faktach; W przypadku faktu wypełnianego automatycznie przez dokument - jest wypełniane poprzez wynik Eventu frxDoc.OnGetFactTimeStamp .Dzięki temu łatwo można określać indywidualnie czas dla poszczególnych kategorii i SIDów pól.
  1. Dodano event : OnGetFrameNameEvent , w którym określamy  co gdzi echcemy wyświetlać.
      Dla podanego aFrameId okreslamy frame (z dopuszczalnym SIDem ) za pomocą którego ma być prezentowany dany widok.
      Dla badań obecnie dopuszczamy aFrameID : 
          MainFrame   - oznacza przebieg wizyty
          Zalecenia  - oznacza zalcenia  
  1. Dodano do formularza badania funkcję: ReLoadDoc (ASave : boolean ) - pozwala wymusić przeładowanie dokumkentu , a tym samym ponowna analizę, gdzie co wyświetlać. 
  1. Modyfikacja formularza edycji pól dokumentu - obecnie po nazwie pola okreslamy kategorie i atrybuty; Potem na ich podstawie kopiujemy parametry pola z def . atrybutu; Do zrobienia jeszcze obsługa Comba pochodzącego z kategorii w dokumencie 
  1. Dodano obsługę wypełniania listy Combo w WPToolsach na podstawie definicji z BF2 (należy zdefiniować rodzaj combo jako K i odpowiednio określić combo w defi . kategorii i atrybutu. Parametry dla comba sąpobierane z definicji głównego atrybutu wybranej kategorii (Pole Atrybut w def . pola dokumentu)  
  1. dodanie parametru: aSource dla frxDoc.GrpConfirmRevertSafe określa do jakiego źródła należy zapisać fakty. Dla badań nalezy wpisać: FfmBadanie|Bidx_badania    
  1. Zdarzenie: OnPrepareDocument ma dodatkowy parametr sParam (trzeba przerobić dokument) ; Dwie wartości parametru mają znaczenie:
            ''   - czyli pustyparametr jest wysyłany standardowo przez mechanizm zapisu dokumentów - np. w momencie zakańczania usługi
            '#główny#'  - ten ciąg znaków jest wysyłany w sytuacji, gdy system oczekuje zapisu dokumentu głownego - jest on niezbędny, by mna do niego doczepić dokumenty dowolne. Oczywiście można też zapisać inne dokumenty, ale główny jest obowiązkowy.
  1. W badaniu nowa funkcja: function SaveDocFromFrame (aParam : string =''):boolean - powoduje inicjowanie zapisu dokumentów (tez klasyczych FasRep ); Parametr aParam jest przekazywany do zdarzenia OnPrepareDocument   
  1. Nowa funkcja: AddDocument (aidx_raportu )  dodaje do dokumentacji (do badania, ale też może do ogólnej) dokument utworzony na podstawie raportu o idx = idx_raportu . Zwraca idx zapisanego dokumentu. 
  1. Nowa funkcja ShowDocument (aidx_dokumentu : integer ; awersja : intgeger = -1) - otwiera wskazany dokument w oknie dialogowym 
  1. Event NOTIFY(SAVEDFACTS, fakty)
  1. Nowa funkcja: AddDocumentInBad (aidx_raportu ) - działa jak AddDocument , ale dodaje od razu do listy dokumentów, a nie w oddzielnym oknie dialogowym
  1. Event OnPrepareDocumentEvent obecnie ma dodatkoweparametry określające, status dokumentu (U - ukryty; N - zwykły) oraz domyślny status protekcji (Uwaga: trzeba poprawić raporty)  
  2. Dodano klasę: frxScript pozwalajacą na fragmentację skrytpów
  3. frxDoc - dodano znacznik: InitScriptsOnlyForEditable
  4. Dodano funkcję : frxDoc.ChkFrameLoaded (ANazwa : string; AAutoLoad : boolean = true) : boolean
  5. Dodano funkcje do wklejania obrazków z plików:

    function   GetImageFromFile (AFile : string ): TObject         - Oczytuje obrazek JPEG z pliku zwraca TJPEDImage z obrazkiem
    function   DeleteFile (AFile : string ): boolean                       - Usuwa wskazany plik
    function   OpenFilesDialog (AFilter : string ; AFilterIndex : integer ; AInitialDirectory : string ; AOptions : TOpenOptions ): TStrings      - Otwiera okno otwierania plików o podanych parametrach. Zwraca TString z lista plików. Listy tej NIE niszczymy

Przykładowe wywołanie:

     // Wstawianie obrazków z plików                     
      with OpenFilesDialog ('Obrazy JPEG (*.jpg)|* .jpg',        // Filtr                        
                            1,                              // Wybrany filtr (chyba)  
                            '',                             // Wyjsciowy katalog; 
                           ofAllowMultiSelect + ofFileMustExist + ofEnableSizing )  // Opcje TOpenOptions - czyli opcje okna otwierania plików  
      do begin
           for i := 0 to Count -1 do begin
              WP.InsertImageToTable ('Obrazki', GetImageFromFile (Strings [i]));
              DeleteFile (Strings [i]);  // usuwanie pliku po zaczytaniu
          end ;                   
      end ;           

38. Dodano event Notify   BRFORECORRECTION wywoływany przed ropoczęciem korekty. Jeślinie chcemy wykonywać korekty naly zgłosić wyjątek

39. Dodano globalna funlcję :  function ConcatRtf (s1 : string ; s2 : string ; AddPar : boolean = false ) : string ;   - pozwala ona łaczyć 2 Rtfy pobrane np. z BF; AddPar = true powoduje, ze drugi tekst zostanie dołaczony od nowej linii.

40. Dodano event: frxDoc.OnBeforeSaveFacts (AGrp : string; ASID : string; var aSource : string; var aUpperSid : string; var aSaveFacts : boolean );

41 Dodano nowe parametry pól - z jakich kategorii i atrybutów pobierać dane do inicjacji; Doano inicjację najswiezszym drzewem faktów, a nie pojedynczym faktem

42. dodano dostępnosc qrBfInit - zawiera dataset stosowany przy inicjowaniu pól - mozna go normalnie przeglądać  

43 Doano funkcję: function CheckInitQuery (aCheckOpen : boolean = true ; aReload : boolean = false ) : string   - sprawdza, czy qrBfInit ma zainicjowany SQL oraz dodatkowo czy jest otwarty (gdy aCheckOpen   = true ), lub wymusza ponowny odczyt danych, gdy aReload   = true

44. Dodano znacznik korekty do funkcji: GrpConfirmRevertSafe

45. Dodano funkcję pgólną : ShowJPEGImage

46 Dodano do frxDoc metody:

    functionTableGetImageCountInCell (aTableName : string; aCol : integer; aRow : integer) : integer;

    procedureTableShowImageFromCell (aTableName : string; aCol : integer; aRow : integer; aImageNr : integer = 1; aModal : boolean = true);

    function TableDeleteImageFromCell (ATableName : string; ACol : integer; ARow : integer; aImageNr : integer = 1) : boolean ;

    function TableGetImageFromCell (ATableName : string; ACol : integer; ARow : integer; aImageNr : integer = 1) : TJPEGImage ;

 

47. Modyfikacja zachowania funkcji GrpConfirmRevertSafe - obecnie fakty nie są zapisywane do bazy BF2 w czasie korekty dokumentu. Ponadto dopuszczono parametr sid w postaci SID% w celu zatwierdzania całych tabel. Ponadto zapis niestniejących danych powoduje usunięcie ewentualnych faktów z nimi powiązanych w przeszłości - ma znaczenie przy usuwaniu wiersza z tabeli

48. Dodano zdarzenie: frxDoc . OnAcceptDefFieldValueEvent

23.10.2012

49: Dodano obsługe dziedziczenia kategorii. Dotyczy to wyszukiwarki kategorii, funkcji: Bf2GetSQL; Dodano do bazy funkcję: bf.get_rel_childs , inh_tree

50 Zmodyfikowano funkcję: Bf2GetAtr - dodano wartość domyślną.

51 Dodano funkcję : function TfrxDoc.Bf2Is(aChild ,aParent : string): boolean ;

52. Dodano do TfrxDoc: Bf2GetAtrCount, Bf2GetAtrByName, Bf2GetAtrByIdx, LastAtr

53. Przy dodawaniu wizyty kontrolnej i dodawaniu skierowania w badaniu wywoływany jest EVENT dla WPT:   Notify z parametrem: REFERRALCHANGED

 

 

 

 


Sugerowana definicja uprawnień dokumentu szablonu badania

 Status

 Odczyt

Zapis 

Korekta 

 A

 bdView    - czyli prawo do wglądu w badanie

 bdEdit   - czyli uprawnienia sterowane przez formularz badania

 

 X

 bdView

 bdEdit - dzięki temu możliwa jest edycja korygowanego badania

 Upr (1)  - tylko admin może wycofać status;