We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Take me to Leap - a story of Love and Despair

00:00

Formale Metadaten

Titel
Take me to Leap - a story of Love and Despair
Serientitel
Anzahl der Teile
57
Autor
Mitwirkende
Lizenz
CC-Namensnennung 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
The journey to bring some packages into the official Distribution Having a project that builds nicely in OBS is one piece of the story. Taking it into the openSUSE Distribution is a different thing. On last years oSC the Leap release manager (Ludwig) approached me 'Why dont you bring GNU Health into Leap'? Yes, why not? I liked the idea, but had not enough time to spend for the project. When the first RC was announced, we had to speed up....and finally made it! Up to that point there was a steep learning curve. The presentation will highlight the major steps - and why we still struggle with the update project. It gives an outlook on the upcoming GNU Health Release as well.
55
Vorschaubild
26:08
Wort <Informatik>NormalverteilungProzess <Informatik>Offene MengeComputeranimationVorlesung/KonferenzUML
WasserdampftafelFamilie <Mathematik>Physikalisches SystemProgrammierparadigmaChirurgie <Mathematik>Maß <Mathematik>Natürliche SpracheDatenverwaltungFunktionalSoftwareProgrammierumgebungMereologieLeistungsbewertungFlächeninhaltIntegriertes InformationssystemAnalysisFunktionalKette <Mathematik>AutorisierungWasserdampftafelDatenbankFunktion <Mathematik>Vorzeichen <Mathematik>Projektive EbeneKontextbezogenes SystemSystemplattformDigitales ZertifikatPhysikalisches SystemBitFamilie <Mathematik>Natürliche SpracheDatenverwaltungSoftwareFigurierte ZahlWort <Informatik>Wurzel <Mathematik>Physikalischer EffektAggregatzustandVersionsverwaltungKonditionszahlInformationAdressraumComputeranimation
DokumentenserverDistributionenraumProzess <Informatik>Faktor <Algebra>QuellcodeEnterprise-Resource-PlanningGebäude <Mathematik>StandardabweichungVerzeichnisdienstSkriptspracheEigentliche AbbildungComputersicherheitDienst <Informatik>Physikalisches SystemBildschirmsymbolCachingRepository <Informatik>LeistungsbewertungPeer-to-Peer-NetzMultiplikationsoperatorBitQuellcodeSoftwareentwicklerDokumentenserverClientZahlenbereichFaktor <Algebra>Offene MengePhysikalisches SystemFunktionalVersionsverwaltungPunktUnrundheitDistributionenraumFramework <Informatik>UnternehmensarchitekturSoftwarewartungSkriptspracheSprachsyntheseEigentliche AbbildungMereologieSystemaufrufComputersicherheitVerzeichnisdienstDienst <Informatik>ServerBenutzerbeteiligungFront-End <Software>BimodulProzess <Informatik>MomentenproblemDreiecksfreier GraphSoftwareMathematikLeistungsbewertungPeer-to-Peer-NetzDatenbankFormale SpracheKonfiguration <Informatik>NeuroinformatikNetzbetriebssystemDemo <Programm>EntscheidungstheorieElektronische PublikationKontrollstrukturMakrobefehlKartesische KoordinatenE-MailSchlussregelProjektive EbeneDeskriptive StatistikResultanteZeichenketteRoboterTeilbarkeitHauptidealBootenDelisches ProblemEnterprise-Resource-PlanningBildschirmsymbolCachingComputeranimation
SoftwarewartungHill-DifferentialgleichungInnerer PunktZahlenbereichDatenstrukturBitProjektive EbeneSoftwarewartungBasis <Mathematik>TopologieQuellcodeMereologieDreiecksfreier GraphComputerspielProgrammiergerätMathematikDatenstrukturProgrammfehlerDokumentenserverElektronische PublikationSkriptspracheComputersicherheitService providerLoginComputeranimation
Physikalisches SystemInstallation <Informatik>Dienst <Informatik>ClientVersionsverwaltungYouTubeRechenwerkOffene MengeGebäude <Mathematik>DatensatzMAPBitWeb-SeiteBrowserVideokonferenzGraphische BenutzeroberflächeApp <Programm>FitnessfunktionKrankenhausinformationssystemSoftwareYouTubeDatenbankPhysikalisches SystemIntegralComputersicherheitSkriptspracheDatenverwaltungDatensatzDienst <Informatik>GamecontrollerKartesische KoordinatenDistributionenraumSoftwareentwicklerElektronische PublikationVersionsverwaltungService providerBildgebendes VerfahrenProjektive EbeneDokumentenserverEnterprise-Resource-PlanningPi <Zahl>Demo <Programm>VirtualisierungMAPResultanteHardwareInternetworkingEinfach zusammenhängender RaumInformationSoftwarewartungAdditionKreisflächeAbgeschlossene MengeSpieltheorieStabBenutzerbeteiligungQuellcodeComputeranimation
Mobiles InternetSkalierbarkeitDistributionenraumServerService providerEndliche ModelltheorieSchnelltasteApp <Programm>MereologieHilfesystemHardwareRückkopplungKartesische KoordinatenMustererkennungInformationsmanagementSoftwareentwicklerAutorisierungFormation <Mathematik>IntegralTranslation <Mathematik>Formale SpracheFreewareMixed RealityProjektive EbenePhysikalisches SystemCodierungMathematikTermComputervirusComputeranimation
HypermediaComputeranimation
Transkript: Englisch(automatisch erzeugt)
Okay, let's start immediately. Welcome to the talk, take me to leap. I think there was a song in the charts for a couple of weeks that sounded like similar, but it didn't use
the word leap, it used something else. The subtitle I don't want to mention because I think I've seen it similar already in this talk and it looks like somebody has cloned it. So what is the talk about the process of bringing new health into open SUSE leap into the standard distribution. Let me spend a couple of words about leap, about new health
beforehand. Why does it not work anymore? Okay. So let's take a look at a couple of figures. 80% of the diseases in low and medium income countries are due to poor sanitation
and unsafe water. So says the United Nations. So what does that mean? Everybody of us is used to just open the tap and you get clean water out of it that you can drink immediately. If you look a little bit further south, you get clean water as well, but drinking
quality, I don't even know. If you go even further south to Africa, you have a few taps, of course, maybe a well where you can take some water from, but mostly the people have to use terrestric water. And this terrestric water can be all kind of shit in the true
sense of the word. It may be used as a toilet somewhere upstream, it may be used by some contaminated water from the industry. So the situation there is difficult. This causes disease and the root cause of this disease is not a viral or a biological thing, it's
a social thing. Looking at some more pictures, we have about 20,000 children dying each day from social diseases. Contaminated water is one of them. We have a couple of others
like human trafficking and prostitution. Some malnutrition or diseases that are caused by poor sanitary conditions, malnutrition and everything like cholera, drug abuse and so on. War is a very big business. There are billions of dollars spent each year on war technology
and every now and then this technology has to be used. So let's take a look, for example, at Libya, Syria, where we have a dictator who is backed up by a flawless Russian Democrat,
as one of our former chancellors said. So they are having a fight, a war against their own people. I mean, the guys on the other hand, the rebels are not pure Democrats as well, so they are also thinking about establishing an Islamic state. But the problem, the real problem
behind this is the population is taking the damage from it. So the population moves out not to be killed by bombs and all kind of terror. So for whatever reason, they don't want to go to Saudi Arabia, for example, they are coming to Europe. So the European community decided,
okay, we are going to help them. At least some countries helped. Some others take the European idea just serious if they can get money from them, like France and Hungary. So many of the refugees are getting stuck at some border. They are living there under really bad
conditions. They have to do camping, for example, in the winter. They don't have any sanitary or clear water supply, and this causes even more problems for them. So if we want to address this with a system, then we need to make sure that the root causes for most of the problems
are addressed, and they are not in a medical, they are in a social sector. This is the reason why New Health sees themselves in the first glance as a social project, as a social project that uses technology to help the people. So if you are looking around in the area of health
and hospital information systems, you find a kind of system of disease, as we call it, because those projects or those software look at the people when they come into a hospital. Then you're a patient, you're ill, you're getting exterminated, you're getting medication,
you're getting aftercare, and you're sent out again. New Health wants to change this in this way that we're turning this into a system of health. That means we're looking already earlier at the individual. So we're looking at his lifestyle. Where does he live?
How does he live? In which community? Does he have a family? How is his housing built up? Does he suffer from a certain social disease or something like that? So we are proactively working on the community health. To address this, New Health has a couple of functional areas.
There's a little bit of it, and basically for everybody. First of all, the area that addresses the person and the community, like the family relationships, like the housing, like the social environment. Then of course we also have the classical parts that a health system has,
like an electronic medical record, we have patient evaluations, we have genetics, prescriptions, history, and so on. Then we have two areas for the health
institution management. That means not necessarily for a health professional or a practitioner, but it can be for a hospital for example. So you're having all the functionalities that you need, starting from financial accounting, human resource, supply chain management,
stock keeping for your drugs, and so on. In the end of the day, we have as well a part that can be used by the health authorities, respectively the Ministry of Health, to run health campaigns, epidemiology analysis, and so on. Important in this context is that New Health
is completely free software. That means it gives you the four freedoms to run the software, to distribute it, to analyze and modify it, and to redistribute the modified version of it. So, looks like my battery is gone. Okay, preferred platforms for it are of course Linux
and FreeBSD. For the most part, PostgreSQL is used as database management system, LibreOffice for the document output. The whole story is written in Python. We're using GnuPG for example
to electronically sign prescriptions or documents like birth certificates or something like that, and the ERP platform underneath is Triton. I'll come to Triton a little bit more in detail.
So, now the real story starts. It was just the background about New Health and I could even tell you a little bit more about that, but I think we're a little bit short on time already. So, what is the development process for OpenSUSE LEAP? I think most of you who have followed
the speeches here in the big hall have already seen this picture. So, we have two ways. First of all, the part coming from the Linux Enterprise distribution, combining this with packages coming from Tumbleweed. So, as we're not in SLEE, we have to go the other way around and we're coming
in via Tumbleweed respectively community distributions. Normally, a development process isn't that way that you have a source, you build it locally, it works, you submit it to a development project, from the development project it's going into factory, OpenQA review,
great tool, and from there it will end up in Tumbleweed and the rolling release. So, let's take a look at the base system, Triton. Triton is an ERP framework. ERP stands for Enterprise Resource Planning. These are basically, let's call it the operating system for a company.
It was forked about ten years ago from Open ERP, which is nowadays called ODO, because the main developer found it was not as open as it should be, and technology-wise
they could have done better. So, the first versions we've packed on OpenZoos on the build server were the 2.8 versions, so that was already a couple of years ago. At the moment, the Triton community maintains about I think six releases actively.
That means from 3.4 to the current 4.4 release, in a monthly cycle, updates are provided. So, the number of packages in the repository has also permanently increased. So, in 3.4,
we had about 85 packages. Package means this is the server, this is the client, it's a GTK-based front-end, or we have also a web front-end, plus around 80 functional modules. The number of modules increased a little bit from 4.2 to 4.4. It looks stable.
In fact, it isn't. There were a couple of packages dropped, and a couple of other functional packages came in. With release 4, we had a technology change. Release 4 was about a year ago. From there, the whole development was done in Python 3,
and New Health sits on top of Triton. So, in version 3.4, we had a New Health release 2.8. In 3.8, we have a New Health release 3.0. So, on last year's OpenSUSE conference, 3.8
was the most actual release. At the moment, the work is ongoing on 3.2 New Health, and it's expected to be released by the beginning of next month. So, if we look at that,
our first idea is, how do we consolidate it? So, New Health is sitting on top of Triton 3.8, so we had already a path in the open build service, which we made use for, for example, to build the live CD, a CD that you can put into your computer. It boots up OpenSUSE,
and it fires up a completely running New Health system with demo database, with ICD10 classification, and everything else. So, this Triton sits itself on double languages Python,
but linking the whole development repository is not an option. So, what we needed to do is to find out which Python packages are not yet in OpenSUSE, either Leap or Tumbleweed, submit them, first of all. Then we need to make sure that the modules that we needed for
New Health are available in factory as well, and, as last package, New Health itself made it into the way to factory. So, first of all is, from where do we submit?
Because we need a development project that is registered to work or to submit something into factory. So, as you've seen, we have various versions and parallels, so it would not be a real good idea to put all these packages into a double languages Python, for example.
So, the decision was taken that we build a dedicated repository called ERP Application, ERP Triton Factory. So, that was a little pull request in Git, and after some weeks,
we had the submission repository and we were allowed to submit from there into factory. So, quite enthusiastic about that. Submit request, and, you know, if you play tennis and you hit the ball against the wall, it immediately came back into my inbox. Of course, the maintainers
of OBS have a couple of rules that we need to apply. So, before we do the first submit to factory, we need to make sure that we follow the packaging guidelines, that the spec file is according to standard. There is a nice little tool for that called the spec file cleaner,
but you need to make sure that it doesn't break your scripts, for example. Then we need to make sure that we're making use, proper use, of packaging macros. So, if we have system services that we need to install, there's a macro for. If we have to update desktop files, for example,
for the GTK client, there is a macro for it. We need to make sure that this is immediately available, that means trigger the refresh of the icon cache. Each packet needs to have a verbose description. Did we have a discussion in factory recently about documentation of packaging?
Something like a dot in the end is not available? I wanted to comment on that further, but nevertheless, in the first glance, I have to admit our package description was not really well, but some gentlemen from the community helped here kindly, so it's looking much better now.
So, then we have to follow packaging security guidelines. In which directories are we allowed to write? We need to make sure that the package's sources can be validated. There are special Python packaging guidelines. There has to be a licence file in there, and I'm sure I forget the one or the other thing. So, after we've done that, for example,
here an example, the spec file cleaner, how does it look before on the left side? How does it look afterwards on the right side? I mean, if you yourself maintain, it doesn't really care, but if somebody else wants to help you, it's really a nice gesture that you have the spec
file cleaned up. Otherwise, this mess on the left-hand side would not have been accepted into factory. So, once we then submit a new package, then a lengthy review process takes place.
Here on the right side, I just picked out one of the many submit histories, and you can roughly see that there are many different eyes involved. So, there are a couple of bots for automated checks. They are checking where does the source come from? Does the URL that you specified
in the spec file really work? It checks the results. There is an automated check for the licence string. There is a factor repository checker. That was the thing I discussed before.
So, does the submission come from a trusted development package? So, after this is passed, which takes usually a couple of submissions, it doesn't work in the first glance, it is assigned to an evaluation project, then we have a peer review for eyes principled by at
least two maintainers, and not to forget, a legal review by a counsellor who makes sure that this is really free software that we are building on the OBS. So, after that is done, we have the first build, and that was great. Thanks, by the way, Ludwig, who was really helpful
on bringing this onto the road. So, now we come to the despair part, and that was the submission of updates. We have a maintenance policy as well, and the maintenance policy
is set, every bugzilla entry or every update that you are submitting requires a bugzilla entry. You need to maintain as well some documentation in the changes file, and here we are mostly depending on the documentation that the project provides. For example, the one that we are getting
from the new health project itself is quite nice, but the programmers of Triton who are really good guys, they are really great programmers, but as many great programmers, they are not really keen on writing documentation, so their change entry is just, yes, see the Mercurial log for
details, and this makes life a little bit harder. So, we've discussed this with the source packages, but, yes, we have to find a way around it. One bug for one submission. So,
if we remember the structure here, we have an average about 100 packages per repository. That means 600 packages that have to be checked on a regular monthly basis, whether there are updates or not. Of course, I'm not doing this manually. We've built some scripts for that,
but if we are just looking at the relevant packages here in the 3.8 tree, we have about 110. We use about 20 or 30 for new health, and, yes, the problem was really do we really need one bug
for each upgrade, because in a monthly cycle, we're getting functional updates, smaller bug fixes, and every now and then a security update as well. So, the question was how do other projects deal with that, and talk to Ludwig on that again, and I think we have a way forward.
So, now, great news to come. Sounds a little bit like clickbaiting, but actually I don't have to do that. You're already here. So, what have we achieved?
I think OpenSUSE is the best distribution to run new health on. Why? If you think about, not at a Ministry of Health, they have some staff who could do that thing. If you think about a hospital, for example, they usually also have some technical people, but if you think about a
health professional or practitioner, these are mostly non-technical people. So, we have to make it simple, nice and stupid for them to install a software like New Health, and here we have the one-click install that makes it really easy for them to install a complete New Health
package with just a single click. And the setup behind it is also quite easy. I mean, you could read the fine manual for that, but you can also watch a little video on YouTube that we've prepared. So, after you've installed it, there are, I think, five or six additional activities
to set up the database, and then you've got it running. You have a full integration into System D. For security reasons, we've segregated the services. That means not everything is running under one user. You get updates via your usual package management system like SIPA, for example.
There is some special documentation to run New Health on OpenSUSE. New Health comes also with a script called New Health Control. This is intended if you're updating or if you are installing New Health from source to keep your system up to date. Actually, I always had my
problems with building New Health from source, because you always have a dependency that does not fit, so it's much easier if you really do it from the package management. And if you're looking to install a web client, which is called SOW, and additional packages,
these are kept in the original repository, ERP Triton 3.8. So, how did we achieve this? I think basically two things. First of all, a great community. This is you guys over here, where everybody gets a bit of peace for that, and OpenSUSE has, to my opinion, the best
tools to manage an application like this. You know, we've heard a lot about the open build service, so the whole development circles around the build service. It interacts with the OpenQA to make sure the quality fits. There is a project called Machinery, which you could use
to analyse running systems. You can export a kiwi file from that, and either from there or from the build service itself, you can put it into Studio. We've used Studio to provide images for USB stick, for a virtual box, for example, or for a CD, where you have a ready-to-run
version of New Health on it. Unfortunately, SUSE Studio seems not to be maintained anymore really actively, and the feeling is that it's a little bit kind of in the hospice already,
and close to death. This is a pity, to be honest, because I think it was a great tool, where you can, with a reasonably lower level of knowledge, achieve something that you could also achieve with kiwi, for example. The result is something great, and this great is,
to my understanding, also a small thing. I have here a little Raspberry Pi with a nice logo on it that was dedicated from SUSE for the New Health project. Thanks again for that. This little Raspberry Pi runs a full health and hospital information system with a demo database on it. I think this could really be a game changer in the healthcare industry,
because this is a reasonably cheap hardware, it can be pre-installed and it can be supplied to persons abroad who have hardly any or no internet access. We have one community guy working in Africa, so you see him only every once a week on the internet, because
if he's somewhere around, they mostly don't have any connection. These Raspberry Pis are used for development. We made a couple of screenshots here, so you can see it contains a full OpenSUSE LEAP version, uses a graphical interface, enlightenment desktop, and runs the full
GNU Health package on it. What's coming next in the GNU Health arena? We will stay small and develop a mobile application called Mike GNU Health. It's a personal health
record that allows you to update or to keep your demographics information, to maintain appointments with doctors, also to get a telemedical approach on it. You can keep various information about it, like for example your body mass index, your exercises, how are your
titles, and so on. Unlike other fitness trackers, your data will not be sold to a third party, needless to say. My GNU Health is built on Qt, that means in the same run we do not just get
a mobile application, we also get a desktop application. Both of them are intended to work with the new health federation server. This is a new model or a new
infrastructure that is currently being built on. It's built on top of the MongoDB and it provides distributed data collection. It will bind together all the different parts, so social parts for example being implemented by social workers. It can be updated from health
authorities, respectively the hospital, each individual to share his data and diagnostics with the person he likes, and last but not least an integration into a laboratory information
management system. This is still under development. The development name is Telamos, quite sensible I think, and we expect this to be released later during the year.
If you want to know more about it, join us at the new health conference 2017. It will take place in November in Las Palmas de Gran Canaria, so the weather will still be nice, there will be friendly people and discussions. We're also looking for contributors, so if you're eager to
do some coding or translations even into exotic languages like German, feel free to contact us. Thanks for your attendance, and if you have questions, I'm happy to answer.
Hello. I have two things to say. First, thanks for all you're doing with this. Everything you're doing with GNU Health, OpenSUSE, it's a wonderful example of what I think the OpenSUSE project
should be a part for, and you're an example and a role model for hopefully more things to come. One extra thing just to add with the SUSE Studio, if you look at some of the changes being made to OBS lately, a lot of that Kiwi integration and the things you're looking for
are finding their way there, so don't worry too much. Okay, yeah, thanks Richard. As I said, the contribution of the SUSE community and SUSE was really great, not in terms of help only, but as well in providing some hardware that we
could use. We've shown this on some medical congresses, and there was really great feedback on that, and I think this was also a recognition that SUSE as a solution provider is available on that market as well. Any further questions? Okay, thank you very much. Have a good conference.